如何设置 CmakeList 标志

Posted

技术标签:

【中文标题】如何设置 CmakeList 标志【英文标题】:How to set up CmakeList flags 【发布时间】:2015-08-13 11:40:12 【问题描述】:

这是我编译 cpp 代码的方式:

g++ -I/usr/local/include/modbus `pkg-config glib-2.0 --cflags --libs` -L/usr/local/lib -lmodbus test-modbus.c -o test-modbus

使用 gcc 它工作得很好。但我需要把它放到 CmakeList.txt 中,我试过这个:

SET(GCC_COVERAGE_COMPILE_FLAGS "-I/usr/local/include/modbus -L/usr/local/lib")
SET(GCC_COVERAGE_LINK_FLAGS    "-lmodbus")
SET( CMAKE_CXX_FLAGS  "$CMAKE_CXX_FLAGS $GCC_COVERAGE_COMPILE_FLAGS" )
SET( CMAKE_EXE_LINKER_FLAGS  "$CMAKE_EXE_LINKER_FLAGS $GCC_COVERAGE_LINK_FLAGS" )

但没有成功。有任何想法吗?

【问题讨论】:

【参考方案1】:

CMake 旨在独立于平台和编译器,因此您无需设置特定的编译器标志,而是告诉 CMake 您想要做什么。例如include_directories命令添加目录到包含路径(类似于gcc的-I选项),target_link_libraries链接一个库(类似于gcc的-l)选项,pkg_config可以通过@987654326调用@模块,等等。

【讨论】:

以上是关于如何设置 CmakeList 标志的主要内容,如果未能解决你的问题,请参考以下文章

怎样编写Cmake的配置文件Cmakelist.txt

CMakelist.txt 配置各种库

如何写CMakeList.txt

如何使用 cmake 设置 g++ 的标志,以便 gprof 可以解散?

如何让vscode中的cmakelist高亮显示

cmake去除libmt