cmake не работает правильно в скрипте Bamboo - PullRequest
1 голос
/ 20 марта 2020

Я хочу запустить встроенный скрипт, который выполняет команду cmake для генерации файлов сборки для моих модульных тестов c / c ++. Агент Bamboo работает на ОС Windows 10. Я установил Cygwin на сервер Агента, чтобы он работал и работал. Если я запускаю 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 приложение для тестирования компилятора g cc, но оно не работает. Я попытался скомпилировать то же приложение, используя g cc, и оно работает. Кажется, существует проблема между cmake и Bamboo.

В сценарии Bamboo я включаю путь к cygwin (C: \ cygwin64 \ bin) в переменную окружения PATH

Any Идея о том, что может вызвать проблему?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Не могли бы вы, пожалуйста, дать мне знать, что делать в бамбуке, вайлл, я столкнулся с проблемой, что cmake вообще не запускается, выдает ошибки

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

, в то время как в автономном режиме windows машина (эта машина настроена как агент)

0 голосов
/ 22 марта 2020

Я обнаружил проблему. Bamboo позволяет перезаписывать переменные среды для конкретного c плана тестирования. Я переопределил PATH, добавив путь к исполняемым файлам Cygwin, сделав так, что CMake может получить доступ ко всем библиотекам и необходимым исполняемым файлам. CMake перед генерацией файлов сборки проверяет, что компилятор C работает с небольшим тестовым приложением. CMake генерирует Makefile, который создает и выполняет это тестовое приложение. По причинам, которые я до сих пор не понимаю, Makefile не видит мое переопределение переменной окружения PATH, но читает исходную версию PATH Bamboo. Чтобы решить эту проблему, мне пришлось изменить переменную окружения Bamboo PATH.

...