如何在Appveyor中找到MS C / C ++编译器

时间:2017-03-17 11:05:20

标签: appveyor

我需要找到Microsoft的编译器cl.exe,用于我的项目构建测试,但似乎无法在Visual Studio 15映像中找到它。我已经看过许多github托管的appveyor.yml文件以寻找灵感(比如https://github.com/frankmorgner/openpace/blob/master/appveyor.yml),但没有什么对我有用。我可以看到llvm编译器,但我真的想要微软的。在Appveyor中获取Microsoft C编译器的最终方法是什么?

2 个答案:

答案 0 :(得分:0)

如果你在任何脚本阶段添加这样的东西(比如说install阶段),你会看到一大堆这些文件 cd c:\ dir /s cl.exe

这是我输出的一小部分: Directory of C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin 08/25/2016 11:13 PM 190,600 cl.exe 1 File(s) 190,600 bytes Directory of C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64 08/25/2016 11:06 PM 229,000 cl.exe 1 File(s) 229,000 bytes Directory of C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64_arm 08/25/2016 11:06 PM 225,568 cl.exe 1 File(s) 225,568 bytes Directory of C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64_x86 08/25/2016 11:06 PM 229,664 cl.exe 1 File(s) 229,664 bytes Directory of C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64 08/25/2016 11:13 PM 190,752 cl.exe 1 File(s) 190,752 bytes Directory of C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_arm

调查AppVeyor VM的另一个选项(如果找不到答案here)是RDP

答案 1 :(得分:0)

该方法正在运行vcvarsall.bat
这是将正确的编译器添加到路径的最可靠方法。 (我也使用它来设置合适的环境以使用clang-cl进行编译。)

示例AppVeyor.yml:

image:
- Visual Studio 2015
- Visual Studio 2017

platform:
- x86
- x64

environment:
    VCVAR2015: 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat'
    VCVAR2017: 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat'

before_build:
- ps: |
    # ...example script to set the proper flags for vcvarsall ...
    # syntax: vcvarsall.bat [architecture] [platform_type] [winsdk_version] [-vcvars_ver=vcversion]
    $Architecture = $env:PLATFORM # simplified, works for x86 and x64
    if ("$env:APPVEYOR_BUILD_WORKER_IMAGE" -eq "Visual Studio 2015") {
      $env:VCVARSALL = "`"$env:VCVAR2015`" $Architecture"
    } else {
      $env:VCVARSALL = "`"$env:VCVAR2017`" $Architecture"
    }
- call %VCVARSALL%

build_script:
- cl
- link

也可以调用特定版本,例如vcvarsamd64_x86.bat,但我更喜欢在脚本中设置标志。