#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
Комментариев нет:
Отправить комментарий