ОШИБКА проекта: Невозможно запустить компилятор 'g ++'.Может быть, вы забыли настроить окружение в gitlab env - PullRequest
0 голосов
/ 14 марта 2019

У меня происходит странное явление, которое я не знаю, как расследовать. Я надеюсь, что кто-то уже сталкивался с этим может дать подсказки

Я использую Gitlab CI для создания некоторых проектов на основе Qt. gitlab runner вызывает скрипт с именем build.sh, который прекрасно работает, когда я запускаю его вручную как «я» в моем env dev. Однако бегун вызывает ошибку, в которой говорится: «ОШИБКА проекта: Невозможно запустить компилятор« g ++ ». Возможно, вы забыли настроить среду». Таким образом, я убедился, что g ++ был доступен (g ++ -version в порядке) и в g ++ находится в PATH, но pbm все еще там.

Вот часть сценария, где находится проблема и расследование, которое я провел

echo ">>>>>> now generating makefiles for  ${PROJECT_FILE} <<<<<<"
export QTDIR=/usr/lib64/qt5
echo $QTDIR
echo QMAKESPEC is
qmake-qt5 -query QMAKE_SPEC
echo gcc version is
gcc --version
g++ --version

echo $PWD
whoami
$cmd_qMake -v
$cmd_qMake -makefile -o qMakefile ../src/${PROJECT_FILE}

echo PATH is $PATH
echo QMAKESPEC is
qmake-qt5 -query QMAKE_SPEC
echo gcc version is
gcc --version
g++ --version

и вот вывод (извините, это в режиме отладки)

>>>>>> now generating makefiles for  Communication.pro <<<<<<
+ export QTDIR=/usr/lib64/qt5
+ QTDIR=/usr/lib64/qt5
+ echo /usr/lib64/qt5
/usr/lib64/qt5
+ echo QMAKESPEC is
QMAKESPEC is
+ qmake-qt5 -query QMAKE_SPEC
linux-g++
+ echo gcc version is
gcc version is
+ gcc --version
gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

+ g++ --version
g++ (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

+ echo /root/builds/3188cf72/0/EGNOS_V3/AIV-P/AIV-P/Shared/Communication/.buildchain
/root/builds/3188cf72/0/EGNOS_V3/AIV-P/AIV-P/Shared/Communication/.buildchain
+ whoami
root
+ qmake-qt5 -v
QMake version 3.1
Using Qt version 5.9.2 in /usr/lib64
+ qmake-qt5 -makefile -o qMakefile ../src/Communication.pro
Project ERROR: Cannot run compiler 'g++'. Maybe you forgot to setup the environment?
+ echo PATH is /opt/gcc-7.3.0/bin:/usr/bin:/usr/sbin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/bin
PATH is /opt/gcc-7.3.0/bin:/usr/bin:/usr/sbin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/bin
+ echo QMAKESPEC is
QMAKESPEC is
+ qmake-qt5 -query QMAKE_SPEC
linux-g++
+ echo gcc version is
gcc version is
+ gcc --version
gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

+ g++ --version
g++ (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

+ for target in '"${TARGETS[@]}"'

Как вы можете видеть, g ++ кажется доступным без корневого пути PATH. Так почему же не работает qMake?

Спасибо за вашу помощь

Zaluum

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

У меня была такая же ошибка sudo apt install build-essential у меня сработало.

0 голосов
/ 18 марта 2019

Ну наконец-то нашел!

Оказывается, что сообщение об ошибке не совсем ясно или, по крайней мере, подлежит интерпретации. Это не было проблемой с gcc, которую не удалось найти. Это была, однако, проблема с моим env.

У пользователя root не было / usr / local / lib в его LD_LIBRARY_PATH (когда он у меня был). Причина, по которой это необходимо, мне неясна, но я подозреваю, что это связано с необходимостью libisl для GCC 7.3.0, который является моим QMAKE_CC.

Надеюсь, это кому-нибудь поможет

Zaluum

...