簡體   English   中英

yaml-cpp 未定義的 CMake 引用

[英]yaml-cpp undefined reference with CMake

我正在嘗試在使用 cmake 和 gcc(使用 Ubuntu)的設置中將 YAML 數據加載到 c++,但出現無法解決的錯誤。

到目前為止,我已經完成了以下工作:

克隆yaml-cpp庫,創建build ,使用cmake ..make來構建庫,並將文件從Downloads/yaml-cpp/build/include/yaml-cpp/復制到myproject/include/yaml-cpp/

此外,我有一個重現錯誤的最小工作示例,如下所示:

CMakeLists.txt

cmake_minimum_required(VERSION 3.6)
project(YAML_TEST)

set(CMAKE_CXX_STANDARD 11)
include_directories("include")

add_library(YAML_LIB include/yaml-cpp/yaml.h )
set_target_properties(YAML_LIB PROPERTIES LINKER_LANGUAGE CXX)

set(SOURCE_FILES main.cpp)
add_executable(YAML_TEST ${SOURCE_FILES})
target_link_libraries(YAML_TEST YAML_LIB)

main.cpp :

#include <iostream>
#include <string.h>
#include "include/yaml-cpp/yaml.h"

int main() {
    YAML::Node config = YAML::LoadFile("test.yaml");
    std::cout << "tag: " << config["tag"].as<std::string>() << "\n";

    return 0;
}

我還有一個小的 yaml 文件 (test.yaml),其中包含:

tag: "This is a text"
category:
  anothertag: 123

但是,如果我嘗試編譯該項目,則會出現錯誤

/home/david/Desktop/myproject/main.cpp:6: undefined reference to `YAML::LoadFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' ...

我猜該項目沒有正確找到 yaml-cpp 庫。 但我無法解決這個問題。

add_library(YAML_LIB include/yaml-cpp/yaml.h )

將嘗試僅使用該頭文件創建一個庫,該頭文件不會包含任何組成 yaml-cpp 的符號。 您需要構建庫並安裝它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM