どのビルドツールが使用されていても、何とか並列ビルドが可能ですか? UNIXでCMakeで移植可能な並列ビルドを設定するには?
Nは、私はその後、構築平行するには、Visual Studioで使用されているCXX_FLAG "/MP"
に追加スレッド とWindowsの下で多数のどこ我々はmake -jN
を追加することができますか...? 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()
ないのsuとにかくその良いアイデアを考えないでください。 CMakeは、プロジェクトがどのようにビルドされ、どのようにmakeがCMakeとは異なるレベルにあるのかを記述します。 – Lap
あなたのアプローチを抜けて、 '-DMULTITHREADED_BUILD = 12'をcmakeのコマンドラインに追加するだけです。 "SET(MULTITHADED_BUILD ...)"を削除してください – bikram990
私の場合Eclipse CDTの結果でエラーが発生します: "/ usr/bin/make -j8" "/ usr/bin/make -j8"プログラムを実行できません:不明理由 エラー: "/ usr/bin/make -j8"というプログラムがPATHに見つかりません –