cmake 在 Bamboo 脚本中不正确 运行

cmake doesn't correctly run in a Bamboo script

我想要 运行 一个执行 cmake 命令的内联脚本来为我的 c/c++ 单元测试生成构建文件。 Windows 10 OS 上的 Bamboo 代理 运行。我在 Agent 的服务器上安装了 cygwin 以进行 cmake up 和 运行ning。 如果我 运行 cmake 直接在提示符下,在代理的服务器上,一切正常。
如果我 运行 在我的 Bamboo 脚本中使用相同的命令,我会收到以下错误:

I:\bamboo-agent-home\xml-data\build-dir\CIMX-XFU-JOB1>cmake . -Bbuild  
-- CMAKE_BINARY_DIR=/cygdrive/i/bamboo-agent-home/xml-data/build-dir/CIMX-XFU-JOB1/build
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/gcc.exe
-- Check for working C compiler: /usr/bin/gcc.exe -- broken
CMake Error at /usr/share/cmake-3.14.5/Modules/CMakeTestCCompiler.cmake:60 (message):
  The C compiler

    "/usr/bin/gcc.exe"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /cygdrive/i/bamboo-agent-home/xml-data/build-dir/CIMX-XFU-JOB1/build/CMakeFiles/CMakeTmp

    Run Build Command(s):/usr/bin/make.exe cmTC_7f576/fast
    /usr/bin/make -f CMakeFiles/cmTC_7f576.dir/build.make CMakeFiles/cmTC_7f576.dir/build
    make[1]: Entering directory '/cygdrive/i/bamboo-agent-home/xml-data/build-dir/CIMX-XFU-JOB1/build/CMakeFiles/CMakeTmp'
    Building C object CMakeFiles/cmTC_7f576.dir/testCCompiler.c.o
    /usr/bin/gcc.exe    -o CMakeFiles/cmTC_7f576.dir/testCCompiler.c.o   -c /cygdrive/i/bamboo-agent-home/xml-data/build-dir/CIMX-XFU-JOB1/build/CMakeFiles/CMakeTmp/testCCompiler.c
    C:/cygwin64/lib/gcc/x86_64-pc-cygwin/7.4.0/cc1.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory
    make[1]: *** [CMakeFiles/cmTC_7f576.dir/build.make:66: CMakeFiles/cmTC_7f576.dir/testCCompiler.c.o] Error 1
    make[1]: Leaving directory '/cygdrive/i/bamboo-agent-home/xml-data/build-dir/CIMX-XFU-JOB1/build/CMakeFiles/CMakeTmp'
    make: *** [Makefile:121: cmTC_7f576/fast] Error 2

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:34 (project)

-- Configuring incomplete, errors occurred!
See also "/cygdrive/i/bamboo-agent-home/xml-data/build-dir/CIMX-XFU-JOB1/build/CMakeFiles/CMakeOutput.log".
See also "/cygdrive/i/bamboo-agent-home/xml-data/build-dir/CIMX-XFU-JOB1/build/CMakeFiles/CMakeError.log".

CMake 试图编译一个简单的 C 应用程序以测试 gcc 编译器,但它失败了。 我尝试使用 gcc 编译相同的应用程序并且它有效。 cmake 和 Bamboo 之间似乎有问题。

在 Bamboo 脚本中,我将 cygwin(C:\cygwin64\bin) 的路径包含到环境变量 PATH

知道导致问题的原因吗?

我发现了问题。 Bamboo 允许为特定的测试计划覆盖环境变量。我重新定义了 PATH,添加了 Cygwin 可执行文件的路径,这样做,CMake 可以访问所有需要的库和可执行文件。 生成构建文件之前的 CMake 测试 C 编译器是否工作 运行 一个小型测试应用程序。 CMake 生成一个构建和执行此测试应用程序的 Makefile。由于我仍然不明白的原因,Makefile 看不到我重新定义的环境变量 PATH,但它读取 Bamboo 的原始版本的 PATH。 为了解决这个问题,我不得不改变Bamboo的环境变量PATH。

你能告诉我这里用竹子做吗,我面临的问题是 cmake 根本不启动,它给出错误

Failed to run MSBuild command: C:/Program Files (x86)/MSBuild/12.0/bin/MSBuild.exe
to get the value of VCTargetsPath:

虽然它在独立 windows 机器上运行良好(这台机器配置为代理)