#cpp #linux #c
Я пользуюсь linux. В папке с main.cpp у меня лежат inc_Abc.h и libAbc.so. Всё это
я собираю командой:
g++ -o main main.cpp -L. -lAbc
Потом запускаю ./main, но появляется ошибка:
./main: error while loading shared libraries: libAbc.so:
cannot open shared object file: No such file or directory
Почему main не видит libAbc.so, который находится в той же папке?
Я знаю, что этот вопрос можно решить, сделав папку с main -- папкой поиска *.so файлов,
с помощью ldconfig. Нельзя ли как-то по-другому это решить?
Ответы
Ответ 1
для разработки или тестирования вполне подойдёт использование переменной окружения LD_LIBRARY_PATH. она может содержать разделённые двоеточием пути для поиска библиотек. текущий каталог, как и обычно, можно обозначить точкой .. можно передавать переменную непосредственно при вызове программы: $ LD_LIBRARY_PATH=. ./main или экспортировать в текущем экземпляре оболочки: $ export LD_LIBRARY_PATH=. тогда в этом экземпляре оболочки можно запускать вашу программу и так: $ ./main
Комментариев нет:
Отправить комментарий