web-dev-qa-db-ja.com

プロジェクトエラー:コンパイラ 'g ++'を実行できません。たぶんあなたは環境を設定するのを忘れてgitlab env

私は調査方法がわからないという奇妙な現象が起こっています。私は誰かがすでにこのANに遭遇したことを願っています

私はgitlab ciを使ってQTベースのプロジェクトを構築しています。 GitLab Runnerは、My Env Devの「ME」として手動で実行するとうまく機能するBuild.shという名前のスクリプトを呼び出します。ただし、ランナーは「プロジェクトエラー:コンパイラ 'g ++」を実行できません。環境を設定するのを忘れた場合があります。だから私は、G ++が利用可能であることを確認しました(G ++ - VersionはOK)、そしてG ++では経路にあるが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 ++が利用可能であるように見えます。

ご協力いただきありがとうございます

ザルーム

3
traiangueul

私は同じエラーがありましたSudo apt install build-essentialは私のために働いた。

2
schoon

まあ、ついにそれを見つけました!

エラーメッセージがまったく解釈されない、または少なくとも解釈の対象となることがわかりました。見つけることができなかったGCCに関する問題ではありませんでした。しかしそれは私のenvの問題でした。

Rootユーザーは/ usr/local/libがld_library_path内の(私が持っていたとき)を持っていませんでした。必要な理由は私には不明確ですが、私はこれが私のqmake_ccであるGCC 7.3.0に必要であるlibislと関係があると思われます。

これが誰かに役立つことを願っています

ザルーム

1
traiangueul