Я новичок в cmake, и я почти уверен, что это проблема, с которой я сталкиваюсь здесь.
Я пытаюсь использовать библиотеку yaml-cpp, написанную в проекте cmake, в свой собственный cmake. проект. Я запускаю следующие команды для сборки и установки yaml-cpp в его собственном каталоге. mkdir build
, cd build
, cmake ..
, make
, а затем sudo make install
, и после выполнения этих команд ошибок не возникло.
теперь в моем собственном проекте у меня есть файл кода С++ в правильном проекте cmake. Чтобы использовать библиотеку yaml-cpp, я включаю ее в #include "yaml-cpp/yaml.h"
, а в файл CmakeLists.txt в этом подкаталоге добавляю следующие два:
find_package(yaml-cpp REQUIRED)
target_link_libraries(yaml-cpp)
однако, когда я пытаюсь скомпилировать проект, он дает мне следующий результат:
handstandForm.cpp:(.text+0x4820): undefined reference to `YAML::LoadFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
Хочу отметить, что проект отлично компилируется и запускается без ошибок при удалении любых строк кода с помощью библиотеки yaml-cpp. В чем может быть проблема? Пожалуйста помоги.
target_link_libraries()
требуется не менее двух аргументов. Первым аргументом должна быть существующая цель CMake, которая будет вашей библиотекой/исполняемым файлом, с которым вы хотите связать библиотеку. - person squareskittles   schedule 28.04.2020