Visual studio 2013 如何以生成Visual Studio 2013的方式配置cmake+;带有/MP选项的项目文件
我有一个cmake项目,有许多cpp文件(大约400+),使用/MP(多线程)编译器选项可以显著加快多核CPU上的编译速度 问题是,每次我使用CMake重新生成解决方案文件时,该选项都被禁用,导致编译速度非常慢。我可以通过在VisualStudio中手动更改每个项目(解决方案由许多不同的项目组成)的选项来解决这个问题。但是,每次我通过运行CMake重新生成解决方案文件时(例如,当我获取其他人的更改,添加/删除了一些文件时),此更改都会被覆盖 如何使其持久化,以使CMake始终在VS项目中启用多线程编译?将以下内容放在项目主Visual studio 2013 如何以生成Visual Studio 2013的方式配置cmake+;带有/MP选项的项目文件,visual-studio-2013,cmake,Visual Studio 2013,Cmake,我有一个cmake项目,有许多cpp文件(大约400+),使用/MP(多线程)编译器选项可以显著加快多核CPU上的编译速度 问题是,每次我使用CMake重新生成解决方案文件时,该选项都被禁用,导致编译速度非常慢。我可以通过在VisualStudio中手动更改每个项目(解决方案由许多不同的项目组成)的选项来解决这个问题。但是,每次我通过运行CMake重新生成解决方案文件时(例如,当我获取其他人的更改,添加/删除了一些文件时),此更改都会被覆盖 如何使其持久化,以使CMake始终在VS项目中启用多线
CMakeLists.txt
文件的顶部:
cmake_minimum_required(VERSION 2.8.12)
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)
如果您不能或不想更改主CMakeLists.txt
文件,则始终可以手动将您的标志添加到CMAKE\u CXX\u标志
缓存变量中,例如使用(假设您的CMAKE项目本身没有强制执行CMAKE\u CXX\u标志的值
)
参考资料
add\u compile\u options()
,而是使用一个即使旧版本也能理解的命令。我已经相应地更新了答案。
project(...)
if (MSVC)
add_definitions("/MP")
endif()