【问题标题】:Project ERROR: Cannot run compiler 'g++'. Maybe you forgot to setup the environment whithin gitlab env项目错误:无法运行编译器“g++”。也许你忘了在 gitlab env 中设置环境
【发布时间】:2019-03-14 07:56:17
【问题描述】:

我发生了一个奇怪的现象,我不知道如何调查。 我希望有人已经遇到过这个并且可以提供提示

我正在使用 gitlab CI 构建一些基于 Qt 的项目。 gitlab runner 调用一个名为 build.sh 的脚本,当我在我的环境开发中以“我”的身份手动运行它时,它工作得很好。 然而,跑步者引发了一个错误,指出“项目错误:无法运行编译器'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++ 似乎在运行者的根路径下可用 那么为什么 qMake 会失败呢?

感谢您的帮助

扎鲁姆

【问题讨论】:

  • 我也有同样的问题,但是在windows上有什么解决办法吗?

标签: g++ gitlab environment qmake


【解决方案1】:

我遇到了同样的错误sudo apt install build-essential 为我工作。

【讨论】:

    【解决方案2】:

    嗯,终于找到了!

    事实证明,错误消息根本不清楚,或者至少需要解释。 找不到 gcc 不是问题。然而,这是我的环境的问题。

    根用户在其 LD_LIBRARY_PATH 中没有 /usr/local/lib(当我拥有它时)。 我不清楚需要的原因,但我怀疑这与我的 QMAKE_CC GCC 7.3.0 需要 libisl 有关。

    希望这对某人有所帮助

    扎鲁姆

    【讨论】:

      【解决方案3】:

      在大多数情况下,这是环境设置的问题 - 尤其是编译器/工具链等的路径

      在 Windows 上,它涉及 PATH 环境变量的设置。例如 - 当您使用带有 g++ 的 minGW 工具链时,您应该设置 PATH,例如

      C:\Qt\Tools\mingw810_64\bin

      但有时在 Windows 控制面板中设置它是不够的,因为其他应用程序(您已安装)可以使用 PATH 并覆盖它。因此,我向所有面临此问题的人推荐并解雇所有找到的可能解决方案,首先 - 检查在 cmd(命令行 Windows 工具)中打印 PATH 是否遵循您在控制面板中设置的 PATH。如果没有,你可以试试:

      1. 查找路径不同的原因,
      2. 检查是否不是这里描述的问题:https://stackoverflow.com/a/65163187/8389251
      3. 添加新的 Windows 用户(新帐户) - 并在那里运行 Qt Creator 和编译。 (仍然确保您在控制面板中正确设置了 PATH)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-25
        • 2023-02-05
        • 2017-07-15
        相关资源
        最近更新 更多