* Я знаю, что есть много вопросов по этому поводу, но они просто не очень помогают, когда речь идет о CMake, поэтому я решил задать вопрос *
Итак, я работал над CLion, который использует CMake для импорта и передачи параметров компилятору, и успешно включил (импортировал) внешнюю библиотеку (зерновые: для сериализации классов в файлы json), расположенную в папке с именем «ExternalLibraries», которая находится на корень папки моего проекта. Он работал нормально, пока я не перезапустил IDE и не попытался снова запустить код... Он вернул ошибку компиляции (я думаю).
Мой файл CMake выглядит так:
cmake_minimum_required(VERSION 3.3)
project(xMemory)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include_directories ("${PROJECT_SOURCE_DIR}/ExternalLibraries/cereal-1.1.2/include/")
set(SOURCE_FILES main.cpp xObject.cpp xObject.h)
add_executable(xMemory ${SOURCE_FILES})
target_link_libraries (xMemory cereal)
И когда я пытаюсь запустить/скомпилировать, оболочка выдает мне это:
/home/lunaticsoul/Documents/clion-1.2.4/bin/cmake/bin/cmake --build /home/lunaticsoul/.CLion12/system/cmake/generated/95701c38/95701c38/Debug0 --target xMemory -- -j 4
Scanning dependencies of target xMemory
[ 33%] Building CXX object CMakeFiles/xMemory.dir/xObject.cpp.o
[ 66%] Building CXX object CMakeFiles/xMemory.dir/main.cpp.o
[100%] Linking CXX executable xMemory
/usr/bin/ld: cannot find -lcereal
collect2: error: ld returned 1 exit status
make[3]: *** [xMemory] Error 1
make[2]: *** [CMakeFiles/xMemory.dir/all] Error 2
make[1]: *** [CMakeFiles/xMemory.dir/rule] Error 2
make: *** [xMemory] Error 2
Я не уверен в том, что происходит, потому что библиотека, кажется, действительно импортирует код (при включении хлопьев нет красных букв), и, как я уже говорил, я думаю, что она просто перестала работать.
Может ли кто-нибудь сказать мне, что с моим файлом CMake что-то не так?
PD: Вот скриншот на всякий случай, если кому-то понадобится.
PD2: я использую elementary os: Freya (Ubuntu 14.04)
target_link_libraries
вызове:target_link_libraries(xMemory ${PROJECT_SOURCE_DIR}/ExternalLibraries/cereal-1.1.2/<...>)
. - person Tsyvarev   schedule 22.03.2016