是它在某種程度上可能能夠有一個並行構建無論哪個構建工具使用?如何在CMake中配置可移植並行版本?
在Unix系統下,我們可以添加make -jN
其中N是我加入CXX_FLAG "/MP"
線程 和Windows下的號碼,然後在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描述了這個項目是如何構建的,以及它如何與CMake完全不同。 – Lap
只需將'-DMULTIREREEDED_BUILD = 12'添加到cmake的命令行即可。並刪除了'set(MULTITHREADED_BUILD ...)' – bikram990
在我的情況與Eclipse CDT導致錯誤: 「在/ usr/bin中/讓-j8」 所有 不能運行程序 「的/ usr/bin中/讓-j8」:未知原因 錯誤:計劃 「在/ usr/bin中/讓-j8」 不是在PATH –