使用cmake链接libconfig和c ++时出错?

时间:2017-05-02 20:15:17

标签: c++ cmake

这是我正在使用的cmake文件

cmake_minimum_required (VERSION 3.0)
project (midasd)

set (midas VERSION_MAJOR 0)
set (midas VERSION_MINOR 0)
set (midas VERSION_REVISION 1)

find_library(libconfig libconfig)

add_executable(midasd src/main.cpp)

target_link_libraries(midasd "${libconfig_LIBS}")

我面临的问题是config_init的未定义参考。主要功能如下

#include <libconfig.h>

int main(int argc, char *argv[])
{
        midas::midasCtx *container = new midas::midasCtx(argc,argv);
        config_t cfg;
        config_init(&cfg);
        return 0;
}

CMAKE我错在哪里?

2 个答案:

答案 0 :(得分:0)

实际上,在链接参数中,libconfig被简单地认为是-lconfig而不是-llibconfig。 CMakeLists.txt应该包含

target_link_libraries(my_project config)

Source

答案 1 :(得分:0)

本手册(https://hyperrealm.github.io/libconfig/libconfig_manual.html)说:“要与库链接,请指定-lconfig ++作为链接器的参数。”

所以我修复了以下代码,并完成了构建。

target_link_libraries(my_project config++)