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

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

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

我没有得到任何错误,但当我开始使用库中的函数时,我得到未定义的引用错误.我有多个库的这个问题,我不知道该做什么我在谷歌搜索但我只遇到了模糊的答案.

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

解决方法:

默认情况下,/usr/include可以包含.但是当您包含外部库时,必须将其链接到目标.如果您使用的是cmake,可以按照以下步骤操作:将以下行添加到CMakeLists.txt:

target_link_libraries(your_target_name your_library_name)

例如,在我的机器(Fedora 21)上,jsoncpp包被命名为jsoncpp,它的包含文件位于/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 – Git和KDevelop


下一篇:linux – Windows XP中的Kdevelop