我使用以下工具链文件:
# funnel.cmake in root
if(CMAKE_SYSTEM_NAME MATCHES Windows)
if(CMAKE_SYSTEM_PROCESSOR MATCHES ".*64$")
message("Build architecture: x64")
set(CMAKE_GENERATOR_PLATFORM x64)
else()
message("Build architecture: x86")
set(CMAKE_GENERATOR_PLATFORM Win32)
endif()
endif()
使用命令(从构建目录):
cmake .. -DCMAKE_TOOLCHAIN_FILE="../funnel.cmake"
终端输出与cmake .. -A x64
相同。尤其是正确的编译器已经过测试,可以运行。
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
但是构建命令:
cmake --build . --target install --config Release
返回以下内容(而cmake .. -A x64
之后的构建命令成功):
ÉCHEC de la build.
"C:\Users\agautier\funnel\cmake\funnel\build\install.vcxproj" (cible par défaut) (1) ->
"C:\Users\agautier\funnel\cmake\funnel\build\ZERO_CHECK.vcxproj" (cible par défaut) (2) ->
(PlatformPrepareForBuild cible) ->
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets
(65,5): error MSB8020: Les outils de génération pour Visual Studio 2010 (ensemble d'outils de plateforme = 'v100') sont
introuvables. Pour générer à l'aide des outils de génération v100, installez les outils de génération Visual Studio 20
10. Vous avez également la possibilité de mettre à niveau les outils Visual Studio actuels en sélectionnant le menu Pro
jet ou en cliquant avec le bouton droit sur la solution, puis en sélectionnant "Recibler la solution". [C:\Users\agauti
er\funnel\cmake\funnel\build\ZERO_CHECK.vcxproj]