gpt4 book ai didi

cmake - 如何在 CMake 中配置可移植并行构建?

转载 作者:行者123 更新时间:2023-12-03 06:53:13 29 4
gpt4 key购买 nike

无论使用哪种构建工具,是否都可以进行并行构建?

在Unix下,我们可以添加make -jN,其中N是线程数,在Windows下,我添加到CXX_FLAG“/MP”,然后在Visual Studio 并行构建...(?)如何使我的版本在运行 CMake 时不总是扩展 CMAKE_MAKE_PROGRAM?

什么是通用解决方案?

我想出了这个:

# Add some multithreaded build support
MARK_AS_ADVANCED(MULTITHREADED_BUILD)
set(MULTITHREADED_BUILD 12 CACHE STRING "How many threads are used to build the project")
if(MULTITHREADED_BUILD)
if(${CMAKE_GENERATOR} MATCHES "Unix Makefiles")
message(STATUS ${CMAKE_BUILD_TOOL})
set(CMAKE_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM} -j${MULTITHREADED_BUILD}")
message(STATUS "Added arguments to CMAKE_BUILD_TOOL: ${CMAKE_MAKE_PROGRAM}")
elseif(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
message(STATUS "Added parallel build arguments to CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
endif()
endif()

最佳答案

使用 CMake 3.12 这是可能的。来自 release notes :

The cmake(1) Build a Project (cmake --build) gained --parallel [<jobs>] and -j [<jobs>] options to specify a parallel build level. They map to corresponding options of the native build tool.

As mentioned by dkg ,还可以设置环境变量CMAKE_BUILD_PARALLEL_LEVEL .

CMake 文档的链接:

关于cmake - 如何在 CMake 中配置可移植并行构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10688549/

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