【发布时间】:2020-03-20 14:55:58
【问题描述】:
我想运行一个执行 cmake 命令的内联脚本来为我的 c/c++ 单元测试生成构建文件。 Bamboo 代理在 Windows 10 操作系统上运行。我在代理服务器上安装了 cygwin 以使 cmake 启动并运行。
如果我在提示符下直接在代理服务器上运行 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 中
你知道什么会导致这个问题吗?
【问题讨论】:
-
C:/cygwin64/lib/gcc/x86_64-pc-cygwin/7.4.0/cc1.exe: error while loading shared libraries: ?- 你的 cygwin 编译器有问题。此错误意味着您的系统缺少该编译器所需的某些(!)库。你可以直接运行C:/cygwin64/lib/gcc/x86_64-pc-cygwin/7.4.0/cc1.exe,你会得到同样的结果。 -
如果我在 testCCompiler.c 上运行 C:/cygwin64/lib/gcc/x86_64-pc-cygwin/7.4.0/cc1.exe,它工作正常。如果它在 CMake 中运行,它就不起作用。问题是由于某些原因,CMake 在 Bamboo 的上下文中运行时无法找到这些库。
-
“问题在于,由于某些原因,CMake 在 Bamboo 的上下文中运行时找不到这些库。” - 搜索库以运行编译器的不是 CMake。你的 Bamboo 的上下文或它下面的编译器安装有问题。
-
这可能是由于网络驱动器
The C compiler "/usr/bin/gcc.exe" is not able to compile a simple test program.的权限问题,尝试在Cgwin树下构建。/tmp或/usr/src是可能的地方。