这是我正在使用的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
我错在哪里?
答案 0 :(得分:0)
实际上,在链接参数中,libconfig
被简单地认为是-lconfig
而不是-llibconfig
。 CMakeLists.txt应该包含
target_link_libraries(my_project config)
答案 1 :(得分:0)
本手册(https://hyperrealm.github.io/libconfig/libconfig_manual.html)说:“要与库链接,请指定-lconfig ++作为链接器的参数。”
所以我修复了以下代码,并完成了构建。
target_link_libraries(my_project config++)