crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Подходящий runtime для GCC 6.1.0, как сделать это, не имея прав root?
AD
  опции профиля:
сообщение 17.4.2017, 10:59
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Работа происходит в Red Hat Linux Enterprise 6.3. Если собираю ерундовый тестовый проект с версией компилятора gcc 4.7.2, то все нормально собирается. Если же я переключаюсь на компилятор 6.1.0, то проект собирается, но при запуске ругается на ABI...
./mtest: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./mtest)

Как настроить правильно runtime, при этом не имея прав root, так как работа происходит на сервере? Насколько я понимаю, то надо что-то сделать с LD_LIBRARY_PATH...


Сразу скажу, не являюсь настолько опытным именно в Linux, чтобы понимать такие детали. Буду благодарен за подсказки...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 21.4.2017, 15:30
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Неужели нет ни у кого подсказки? Никто с подобным не сталкивался или просто лень отвечать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 5.5.2017, 11:10
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Пока решение так и не нашел.... (
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 6.5.2017, 4:40
Сообщение #4


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

возможны и другие места для поиска библиотек.
но то, что у тебя происходит - это ненормально. это криво настроенная система и без рутовых прав ты это не исправишь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 11.5.2017, 11:49
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Iron Bug @ 6.5.2017, 4:40) *
LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

возможны и другие места для поиска библиотек.
но то, что у тебя происходит - это ненормально. это криво настроенная система и без рутовых прав ты это не исправишь.

Конкретно данный путь не заработал... Но разобрался с тем, куда указать.... Нашел место, куда установлен gcc. Оказывается он в /opt установлен. Ну я и указал конкретную lib64 для нужного мне gcc.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гест_*
сообщение 29.8.2017, 15:24
Сообщение #6





Гости








    


Цитата(AD @ 17.4.2017, 10:59) *
Работа происходит в Red Hat Linux Enterprise 6.3. Если собираю ерундовый тестовый проект с версией компилятора gcc 4.7.2, то все нормально собирается. Если же я переключаюсь на компилятор 6.1.0, то проект собирается, но при запуске ругается на ABI...

Есть же devtoolset-6 с gcc 6.2.1. Он не создаёт runtime-зависимостей от своей libstdc++ (т.е. линкует статически) и софт, собранный им, зависит только от обычной системной libstdc++ от gcc 4.7.x/4.8.x
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 30.8.2017, 5:09
Сообщение #7


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Гость_Гест_* @ 29.8.2017, 17:24) *
софт, собранный им, зависит только от обычной системной libstdc++

нет никакой "системной libstdc++'. libstdc++ - это стандартная библиотека С++ и она не является системной.
в компиляторах есть флаги для статической линковки стандартной библиотеки. в GCC это -statc-libstdc++. плюс есть статическая линковка библиотеки самого GCC -static-libgcc.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.11.2024, 23:39