我的appveyor窗口的问题在GitHub上为一个简单的C项目构建

时间:2018-01-29 11:48:27

标签: c git cmake mingw appveyor

我正在维护this GitHub repo - 一个简单的C项目,其中包含用于构建配置的CMake。它建立在Linux和MacOS之上。

现在我想开始在Windows上使用AppVeyor为我的一个分支机构构建测试(在使用Travis的Linux上,但这只是工作,所以没有任何问题)。我根据我在另一个项目中看到的类似文件,设置了一个appveyor帐户,编辑了设置,并在我要测试的分支(appveyor.yml)上创建了drop_platform_spec file

我没有Windows机器,我可以自己测试构建,让事情变得更加困难(我猜也许是蛮干的)。

无论如何,构建确实发生了,但失败有两个原因:

  1. sh.exe位于构建路径中
  2. CMake无法确定使用哪个C编译器
  3. 构建控制台输出附在下面。

    我的问题:我该如何解决这个问题?特别是,我应该手动将C编译器设置为某个路径,如果是,那么路径是什么?

    构建控制台输出:

    git clone -q --depth=1 --branch=drop_platform_spec https://github.com/eyalroz/tpch-dbgen.git C:\projects\tpch-dbgen
    git checkout -qf 4607da63ecaead909c4ba380c5097495655c592e
    Running Install scripts
    set "PATH=%mingw_bin%;%PATH%"
    cmake -G "MinGW Makefiles" . && mingw32-make
    CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.10/Modules/CMakeMinGWFindMake.cmake:12 (message):
      sh.exe was found in your PATH, here:
      C:/Program Files/Git/usr/bin/sh.exe
      For MinGW make to work correctly sh.exe must NOT be in your path.
      Run cmake from a shell that does not have sh.exe in your PATH.
      If you want to use a UNIX shell, then use MSYS Makefiles.
    Call Stack (most recent call first):
      CMakeLists.txt:7 (project)
    CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
    -- Configuring incomplete, errors occurred!
    Command exited with code 1
    

    注意:此问题描述了一个不兼容的sh和make情况。我不认为这就是我所拥有的,所以这不是一个骗局,但如果你认为这与我的情况有关,请在这里解释,而不是标记一个骗局。

2 个答案:

答案 0 :(得分:1)

将我的评论转化为答案

要隐藏来自CMake的PATH环境中的内容,您可以使用CMAKE_IGNORE_PATH

所以我认为它也可以在这里工作(隐藏PATH中的所有shell)。但是,如果您的编译器(或任何其他可执行文件)位于同一路径中,它将无法工作:

cmake -DCMAKE_IGNORE_PATH="C:/Program Files/Git/usr/bin" ..

<强>参考

答案 1 :(得分:0)

请检查https://github.com/eyalroz/tpch-dbgen/pull/22/files,这是非常自我描述的。主要与Windows命令行语法有关,例如set pathecho %variable%命令行语法。这不是弗洛里安所写的替代答案,而是补充。

附注:没有Windows机器不应阻止您进行交互式调试,请参阅https://www.appveyor.com/docs/how-to/rdp-to-build-worker/