gpt4 book ai didi

visual-studio-2013 - 如何以使用/MP 选项生成 Visual Studio 2013+ 项目文件的方式配置 cmake

转载 作者:行者123 更新时间:2023-12-05 00:20:39 26 4
gpt4 key购买 nike

我有一个 cmake 项目,其中包含许多 cpp 文件(大约 400 多个),并且使用/MP(多线程)编译器选项可以显着加快多核 CPU 上的编译速度。

问题是,每次我使用 CMake 重新生成解决方案文件时,该选项都被禁用,导致编译速度非常慢。我可以通过在 Visual Studio 中手动更改每个项目(解决方案由许多不同的项目组成)的选项来解决这个问题。但是,每次我通过运行 CMake 重新生成解决方案文件时(例如,当我 git pull 其他人的更改添加/删除了一些文件时),此更改会被覆盖。

如何使其持久化,以便 CMake 始终在 VS 项目中启用多线程编译?

最佳答案

把下面的 add_compile_options() 在您的项目主要 CMakeLists.txt 的顶部文件:

cmake_minimum_required(VERSION 2.8.12)
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)

或使用旧的 CMake 版本 < 2.8.12:
project(...)
if (MSVC)
add_definitions("/MP")
endif()

如果您不能或不想更改主要 CMakeLists.txt文件,你总是可以手动添加你的标志到 CMAKE_CXX_FLAGS缓存变量,例如通过使用 CMake's GUI (假设您的 CMake 项目本身没有强制使用 CMAKE_CXX_FLAGS 的值)。

引用文献
  • Is Cmake set variable recursive?
  • Change default value of CMAKE_CXX_FLAGS_DEBUG and friends in CMake
  • What's the CMake syntax to set and use variables?
  • 关于visual-studio-2013 - 如何以使用/MP 选项生成 Visual Studio 2013+ 项目文件的方式配置 cmake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33858455/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com