Tesla4o
@Tesla4o
Без пользы жизнь - безвременная смерть... В. Гете

Как добавить путь LD_LIBRARY_PATH в коде с++?

Есть программа которая устанавливает другую программу. И в ней нужно сделать еще чтобы она указалу путь к библиотекам которые идут с устанавливаемой программой.
Я делал так:
chdir("path/to/library/");
std::system("export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/path/to/library/");


Но он все равно пишет что не видит этих библиотек. Если зайти в эту папку и непосредственно от туда руками сделть экспорт типа
export LD_LIBRARY_PATH=$PWD
тогда все работает нормально.
  • Вопрос задан
  • 1157 просмотров
Решения вопроса 1
Tesla4o
@Tesla4o Автор вопроса
Без пользы жизнь - безвременная смерть... В. Гете
Спасибо за ответы! Проблему решил просто!
std::system("eсho \"export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my/dir/\" >> ~/.bashrc");

Может комуто тоже это поможет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@none7
Ваша программа, это не sh скрипт. И пара строк:
std::system("export myvar=1");
std::system("echo $myvar");

неожиданно выведут пустую строку. Нужно либо устанавливать переменную в том же вызове system(env LD_LIBRARY_PATH=${LD_LIBRARY_PATH} path/to/app) или ручками менять переменные своей программы(getenv/setenv).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы