компилятся библиотеки норм в "*.so", компилится норм хост файл. Затем из разных папок кладу их в одну. И просто функция dlopen, которая открывает файл библиотеки на чтение, возвращает NULL. А если сделать просто из проги в качестве дебага открытие этого же файла на чтение как обычного файла - всё открывается
То есть программа должна видеть этот файл
Прикрепляю структуру папок
Я компилю их в разных местах (захожу в build и там cmake .. && make all), а потом чяерез makefile перемещаю в одну папку. Пробую запускать, а он не открывает библиотеку
Мб, после перемещения у библиотек какие-то include сбиваются? Или в чем может быть трабла?
Посмотри environmentы и текущий каталог
а какие именно переменные окружения смотреть и в каких каталогах?😅
Желательно все переменные
И текущий рабочий каталог
Переформулирую проблему, может, будет нагляднее: У меня трабла с dlopen не может открыть либу "*.so", хотя если ее открывать как обычный файл в коде, то открывается (то есть он файл видит) Компилируется хост приложение отдельным cmakelist и либы отдельным cmakelist. Всё компилится нормально А затем делаю подобное: я скомпилил в папке N1 хоста, в папке N2 библиотеку. Положил их в вместе в папку N3. Причем в хосте, в коде, я предполагаю, что они лежат в одной папке, когда прописываю пути для файлов почему dlopen не может открыть файл и выдает NULL?
А errno то какой?
export LD_LIBRARY_PATH=папка с .so
могу, но наверное в лс, много будет инфы в чате
там ты наверное сделал add_library(liba source.c source.h...) далее можно сделать target_include_directories а в листе для исполняемого файла target_link_library
Обсуждают сегодня