Подключение своей библиотеки CMake

Задача такова: создать 2 файла CMakeLists.txt для библиотеки (myfunc.cpp myfunc.h) и для исполняемого файла (test.cpp). Если компилировать всё через g++, то всё работает. При компиляции через CMake возникает ошибка, файл test.cpp не видит функции из библиотек (возможно и библиотеку целиком, просто ссылается на myfunc.h из-за include_directories(/home/adminn/CMake/lib))

adminn@adminn:~/CMake$ cmake --build .
[ 50%] Building CXX object CMakeFiles/test.dir/test.cpp.o
[100%] Linking CXX executable test
/usr/bin/ld: CMakeFiles/test.dir/test.cpp.o: в функции «main»:
test.cpp:(.text+0x431): неопределённая ссылка на «calculateAverage(std::vector<double, std::allocator<double> > const&)»
/usr/bin/ld: test.cpp:(.text+0x4a2): неопределённая ссылка на «calculateVariance(std::vector<double, std::allocator<double> > const&)»
/usr/bin/ld: test.cpp:(.text+0x513): неопределённая ссылка на «calculateStandardDeviation(std::vector<double, std::allocator<double> > const&)»
collect2: error: ld returned 1 exit status

Для test.cpp:

cmake_minimum_required(VERSION 3.5)

project(test)



include_directories(/home/adminn/CMake/lib)

add_library(myfunc STATIC IMPORTED)

set_property(TARGET myfunc PROPERTY

             IMPORTED_LOCATION /home/adminn/CMake/lib/libmyfunc.so)

target_link_libraries(myfunc) # При указании на конкретно библиотеку выдаёт ошибку, т.к. она создана не этим проектом




add_executable(test test.cpp)

Для библиотеки

cmake_minimum_required(VERSION 3.5)

project(myfunc)



# Создаем динамическую библиотеку

add_library(myfunc SHARED myfunc.cpp myfunc.h)



install(TARGETS myfunc LIBRARY DESTINATION lib)

install(FILES myfunc.h DESTINATION include)

Ответы (0 шт):