【发布时间】:2016-07-19 03:17:03
【问题描述】:
我有 2 个版本的 SDK for Qt Creator:从开源编译和从 bitbake 编译。
开源 SDK 工作正常,但 bitbake 无法识别编译器。我已将 g++ 编译器添加到 build & Run 和 source environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi 以及。
make: c: Command not found make: [moc_utils.o] 错误 127(忽略)
制作: wl,-rpath-link,/opt/poky/charles/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib:
Command not found make: [quicknanobrowser] 错误 127(忽略)
这里是错误一编译器日志:
14:27:55:项目 quicknanobrowser 的运行步骤...
14:27:55: 开始: “/opt/poky/charles/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake” /home/hbulab/Qt5.5.1/Examples/Qt-5.5/webengine/quicknanobrowser/quicknanobrowser.pro -r -spec linux-oe-g++ CONFIG+=debug CONFIG+=declarative_debug CONFIG+=qml_debug
14:27:55:过程 “/opt/poky/charles/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake” 正常退出。
14:27:55:开始:“/usr/bin/make”
c -pipe -g -DLINUX=1 -DEGL_API_FB=1 -Wall -W -D_REENTRANT -fPIC -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBENGINE_LIB -DQT_QUICK_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB
这是没有错误的,我们可以看到make 找不到g++ 编译器。我如何解决它?
14:29:08:项目 quicknanobrowser 的运行步骤... 14:29:08: 开始:“/opt/hio-imx6dl-board/opt/Qt5daisy/bin/qmake” /home/hbulab/Qt5.5.1/Examples/Qt-5.5/webengine/quicknanobrowser/quicknanobrowser.pro -r -spec devices/linux-imx6-g++ CONFIG+=debug CONFIG+=declarative_debug CONFIG+=qml_debug
14:29:09:过程 “/opt/hio-imx6dl-board/opt/Qt5daisy/bin/qmake”正常退出。
14:29:09:开始:“/usr/bin/make”
/opt/poky/1.6.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ -c -pipe -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=hard -g -Wall -W -D_REENTRANT -fPIC -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBENGINE_LIB -DQT_QUICK_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I。
MakeFile 信息:
MAKEFILE = Makefile
####### Compiler, tools and options
CC = $(OE_QMAKE_CC)
CXX = $(OE_QMAKE_CXX)
DEFINES = -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBENGINE_LIB -DQT_QUICK_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB
CFLAGS = -pipe $(OE_QMAKE_CFLAGS) -g -DLINUX=1 -DEGL_API_FB=1 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
CXXFLAGS = -pipe $(OE_QMAKE_CXXFLAGS) -g -DLINUX=1 -DEGL_API_FB=1 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
INCPATH = -I../../../Qt5.5.1/Examples/Qt-5.5/webengine/quicknanobrowser -I. -isystem /opt/poky/charles/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5 -isystem /opt/poky/charles/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtWebEngine -isystem /opt/poky/charles/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtQuick -isystem /opt/poky/charles/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtWidgets -isystem /opt/poky/charles/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtGui -isystem /opt/poky/charles/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtQml -isystem /opt/poky/charles/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtNetwork -isystem /opt/poky/charles/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore -I. -I/opt/poky/charles/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++
QMAKE = /opt/poky/charles/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake
【问题讨论】:
-
你在更换 SDK 时是否重新运行了
qmake?生成的 Makefile 的开头是什么样的?它是否包含像CXX = $(OE_QMAKE_CXX)这样的行?如果是这样,在收到错误后立即运行echo $OE_QMAKE_CXX会给您带来什么? -
如何重新运行 qmake?我所做的只是从 Qt Creator 切换套件。由于它在 make 失败,它没有创建任何 MakeFile
-
好的,查看痕迹,qmake 似乎正在运行。您是否在 QtCreator 中配置了
source environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi中的所有内容? (或者来源于启动 QtCreator 的同一个 shell?)。由于编译期间构建失败,${CC}为空,qmake 将为您创建一个 Makefile。这也显示在您的日志中,因为 qmake 正常退出。如果您尝试在 shell 中运行 qmake 和 make 会发生什么? -
除了 g++ 编译器、qmake 之外,我没有添加任何东西,并添加了一个带有 sysroot 的工具包。
echo $OE_QMAKE_CXX返回空。我可以在 shell 中运行 qmake 和 make,它创建的 makefile 和上面一样,但是 make 返回相同的错误。
标签: linux qt qt5 qt-creator bitbake