gpt4 book ai didi

c++ - 如何在 Cmake/Kdevelop 中使用/包含库

转载 作者:太空狗 更新时间:2023-10-29 20:37:01 26 4
gpt4 key购买 nike

我不明白我需要做什么才能使用位于/usr/include 中的库。

例如:我想使用 json library它位于/usr/include/json。在我的项目“main.cpp”中,我做 #include <json/json.h> .

我没有得到任何错误,但是当我开始使用库中的函数时,我得到了 undefined reference 错误。我在多个库中遇到这个问题,我不知道该怎么做我在谷歌上搜索,但我只遇到了模糊的答案。

我很确定我需要在 CMakeLists.txt 文件中做一些事情,但我不知道是什么。

最佳答案

/usr/include 默认情况下可以访问 include。但是当你包含一个外部库时,你必须将它链接到你的目标。如果您使用的是 cmake,可以按如下方式完成:将以下行添加到您的 CMakeLists.txt:

target_link_libraries(your_target_name your_library_name)

例如,在我的机器(Fedora 21)上,jsoncpp 包名为 jsoncpp,它的 include 文件位于 /usr/include/jsoncpp/json 。所以我像这样创建 test.cpp

#include <jsoncpp/json/json.h>
#include <iostream>

int main(int, char**)
{
Json::Value val(42);
Json::StyledStreamWriter sw;
sw.write(std::cout, val);
return 0;
}

CMakeLists.txt

add_executable(test
test.cpp
)

target_link_libraries(test jsoncpp)

一切正常。

关于c++ - 如何在 Cmake/Kdevelop 中使用/包含库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36329350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com