177得票1回答
使CMAKE生成一个错误

如何让CMAKE在特定条件下生成错误。也就是说,我想要像这样的东西: if( SOME_COND ) error( "You can't do that" ) endif()

175得票10回答
CMAKE中的特定于操作系统的指令:如何使用?

我是CMAKE的初学者。下面是一个简单的CMake文件,它在mingw环境的Windows中运行良好。问题显然出现在CMAKE的`target_link_libraries()`函数中,我正在链接libwsock32.a。在Windows中可以工作并获得结果。 但是,如预期所示,在Linux...

170得票8回答
如何为CMake指定新的GCC路径

我的操作系统是CentOS,其中的默认gcc路径为/usr/bin/gcc。但这个版本比较旧,我需要新版本的gcc。因此,我在新路径/usr/local/bin/gcc中安装了一个新版本。 但是当我运行cmake时,它仍然使用旧版本gcc的路径(/usr/bin/gcc)。如何将gcc指定到...

170得票2回答
CMAKE_CURRENT_SOURCE_DIR和CMAKE_CURRENT_LIST_DIR的区别

来自维基百科: CMAKE_CURRENT_SOURCE_DIR:当前正在处理的CMakeLists.txt所在的目录。 CMAKE_CURRENT_LIST_DIR:(自2.8.3版本起)当前正在处理的列表文件所在的目录。 来自文档: CMAKE_CURRENT_SOURCE_DIR...

167得票8回答
如何在CMakeLists.txt中添加Boost库?

我需要将Boost库添加到我的CMakeLists.txt中。你如何做或者怎样添加它?

164得票7回答
如何在CMake中设置警告级别?

如何使用CMake为项目(而不是整个解决方案)设置警告级别? 应该在Visual Studio和GCC上工作。 我发现了各种选项,但大多数似乎要么不起作用,要么与文档不一致。

163得票12回答
使用CMake,我如何从CTest中获取详细输出?

我正在使用CMake构建我的项目。我已经添加了一个使用Boost单元测试框架的单元测试二进制文件。这个二进制文件包含所有的单元测试。我已经将该二进制文件添加到CTest中运行:ADD_EXECUTABLE( tftest test-main.cpp ) ENABLE_TESTING() ADD...

161得票6回答
CMake如何将构建目录设置为与源目录不同

我对CMake还比较新,已经阅读了一些关于如何使用它的教程,并编写了一些复杂的50行CMake脚本,以便为3个不同的编译器制作程序。这可能是我在CMake方面的全部知识。 现在我的问题是,我有一些源代码,我不想在制作程序时触及/混乱它的文件夹。我希望所有CMake和make输出文件和文件夹都...

159得票12回答
如何开始使用GTest和CMake工作

我最近被说服使用CMake来编译我的C++项目,现在想开始编写一些单元测试。我决定使用Google Test实用程序来帮助完成此任务,但需要一些帮助才能入门。 整天我一直在阅读各种指南和示例,包括Primer,IBM的介绍以及一些关于SO的问题(这里和这里),以及其他我已经忘记的来源。我意识...

157得票5回答
CMake target_link_libraries 接口依赖

我刚接触CMake,有点困惑关于PUBLIC、PRIVATE和INTERFACE这些关键字与target_link_libraries()命令相关的内容。文档提到它们可以一起用于在一个命令中指定链接依赖项和链接接口。 链接依赖和链接接口实际上是什么意思?