CMake ld: library not found
У меня стоит MacOS 10.15 Catalina. Пытаюсь слинковать исполняемый файл с библиотекой, которая лежит в другом каталоге. Однако при линковке возникает такая ошибка:
Scanning dependencies of target example1
[ 50%] Building CXX object CMakeFiles/example1.dir/lab03/examples/example1.cpp.o
[100%] Linking CXX executable example1
ld: library not found for -lprint
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [example1] Error 1
make[1]: *** [CMakeFiles/example1.dir/all] Error 2
make: *** [all] Error 2
Очень надеюсь на Вашу помощь, все перерыл, но нет ответа. Спасибо
Ответы (1 шт):
Просто вместо include_directories() засунь полный путь в target_link_libraries(). Это очень не логично и сбивает с толку (include_directories()), но у меня это тоже не работало. Почитай об этом, это частая ошибка для новичков.
Если тебе нужно какой-нибудь каталог часто прописывать, то засунь его в переменную (set()), а чтобы работал find_package(), необходимо чтобы был соответствующий Find*.cmake файл. Обычно эти файлы лежат прямо в каталоге, где установлен сам CMake. Например, у меня здесь:
/opt/Qt/Tools/CMake/share/cmake-3.16/Modules/
Можно создать свой find-файл или скопировать существующий в нужный тебе каталог, и добавить (а не затереть) путь к этому каталогу в переменную ${CMAKE_MODULE_PATH}.
