Я пытаюсь включить динамическую библиотеку в свой проект и настраиваю компиляцию, используя следующий скрипт CMake:
find_package( DLIB 18.18.0 REQUIRED )
include_directories( ${DLIB_INCLUDE_DIRS} )
add_executable( executable executable.cxx )
target_link_libraries( executable ${dlib_LIBRARIES} )
Если я печатаю каталоги переменной $ {dlib_LIBRARIES}, я получаю:
/Users/../INSTALL/lib/libdlib.dylib
Что правильно и компилируется.
Проблема возникает при выполнении исполняемого файла и выдает следующую ошибку во время выполнения:
dyld: Library not loaded: libdlib.18.18.0.dylib
Referenced from: /Users/.../bin/executable
Reason: image not found
Trace/BPT trap: 5
И это выглядит логично, потому что если я запускаю исполняемый файл otool -L, я получаю относительный путь вместо абсолютного:
$otool -L executable
libdlib.18.18.0.dylib (compatibility version 0.0.0, current version 18.18.0)
Почему путь, показанный otool, не совпадает с путем, добавленным с target_link_libraries, и как я могу решить эту проблему с помощью cmake?
Задача ещё не решена.
Других решений пока нет …