Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio CMake:如何指定Visual C++;一起工作?_Visual Studio_Visual C++_Cmake_Version - Fatal编程技术网

Visual studio CMake:如何指定Visual C++;一起工作?

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”。(全名) 我更

我安装了多个版本的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”。
    (全名)
  • 我更喜欢后者,因为它清晰明了。我通常在构建脚本包装器中调用:

    @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”。


  • 工具书类

    一个重要问题的重要答案+有没有办法将生成器设置为MSVC,同时使用CLANG作为编译器?似乎无论我做过什么
    -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()