У меня есть проект с именем myproject
, с каталогом сборки myhome/myproject/build
.
У меня есть библиотека с именем libmylibrary.so
, которая живет в myhome/folder/lib
с заголовками в myhome/folder/include
Тогда у меня есть CMakeLists.txt в myhome/myproject
, который выглядит следующим образом:
cmake_minimum_required(VERSION 3.5.1)
project (myproject)
file(GLOB SOURCES "src/*.cpp")
add_executable(myproject ${SOURCES})
find_library(MYLIB mylibrary REQUIRED)
target_link_libraries(myproject PRIVATE mylibrary)
Я запускаю cmake ../
в каталоге сборки, а затем make
, и я получаю:
/usr/bin/ld: cannot find -lmylibrary
collect2: error: ld returned 1 exit status
Я просто не понимаю, как это так сложно.Чего мне не хватает?Я попробовал то, что похоже на каждую комбинацию случайных, но чрезвычайно схожих названий директив CMake, но безуспешно (и никакой информации о причинах успеха или неудачи нет, поэтому это буквально просто метод проб и ошибок).
Как я могускажите [что-то, что нужно знать], где находится моя библиотека, чтобы CMake мог ее найти, без того, чтобы она была жестко запрограммирована в сценарии CMake?Спасибо.
Спасибо