Visual studio CMake:如何指定Visual C++;一起工作?
我安装了多个版本的Visual Studio(2010、2012、2015试用版) 如何强制CMake为特定VS版本生成makefiles?默认情况下,它为VS2015生成。首先,您可以检查您的CMake版本支持什么(以及如何命名):Visual studio CMake:如何指定Visual C++;一起工作?,visual-studio,visual-c++,cmake,version,Visual Studio,Visual C++,Cmake,Version,我安装了多个版本的Visual Studio(2010、2012、2015试用版) 如何强制CMake为特定VS版本生成makefiles?默认情况下,它为VS2015生成。首先,您可以检查您的CMake版本支持什么(以及如何命名): cmake -G "Visual Studio 12" ..\MyProject 然后你可以给发电机加上 cmake.exe-G“Visual Studio 11”。(简称) cmake.exe-G“Visual Studio 11 2012”。(全名) 我更
cmake -G "Visual Studio 12" ..\MyProject
然后你可以给发电机加上
cmake.exe-G“Visual Studio 11”。
(简称)cmake.exe-G“Visual Studio 11 2012”。
(全名)@ECHO off
IF NOT EXIST "BuildDir\*.sln" (
cmake -H"." -B"BuildDir" -G"Visual Studio 11 2012"
)
cmake --build "BuildDir" --target "ALL_BUILD" --config "Release"
全名将传输到内部缓存的CMake变量名。因此,上述调用相当于
cmake-DCMAKE_GENERATOR=“Visual Studio 11 2012”。
这给了我们一个有趣的可能性。如果将名为
PreLoad.cmake
的文件与主CMakeLists.txt
文件平行放置,则可以强制默认值(如果可用)用于项目
cmake.exe..
PreLoad.cmake
有时您可能还需要添加
-T
或-A
选项:
cmake.exe-G“Visual Studio 10”-T“v90”。
最后但并非最不重要的是,如果你真的只对编译器感兴趣
“\ProgramFiles(x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat”
cmake.exe-G“NMake Makefiles”。
工具书类
-G“Visual Studio 15 2017 Win64”
我都无法让CMake使用不同的编译器(尽管它是兼容的)。这对我不起作用,我指出-G“Visual Studio 15 2017 Win64”
但仍显示——C编译器标识为MSVC 19.16.27045.0——CXX编译器标识为MSVC 19.16.27045.0
@ECHO off
IF NOT EXIST "BuildDir\*.sln" (
cmake -H"." -B"BuildDir" -G"Visual Studio 11 2012"
)
cmake --build "BuildDir" --target "ALL_BUILD" --config "Release"
if (NOT "$ENV{VS110COMNTOOLS}" STREQUAL "")
set(CMAKE_GENERATOR "Visual Studio 11 2012" CACHE INTERNAL "Name of generator.")
endif()