我有两个版本的Qt Creator SDK:从开源编译并从bitbake编译。
Open Source SDK工作正常,但是bitbake正在识别编译器时遇到问题。我已将g ++编译器添加到build & Run
和source environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
。
make:c:找不到命令make:[moc_utils.o]错误127(忽略)
请: WL,-rpath链路,/选择/狭小/查尔斯/ sysroots / cortexa9hf-VFP氖-狭小-Linux的gnueabi / usr / lib中:
找不到命令make:[quicknanobrowser]错误127(忽略)
以下是编译器日志错误:
14:27:55:为项目quicknanobrowser运行步骤...
14时27分55秒: 开始: " /选择/狭小/查尔斯/ sysroots / x86_64的-pokysdk-的Linux的/ usr /斌/ 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:这个过程 " /选择/狭小/查尔斯/ sysroots / x86_64的-pokysdk-的Linux的/ usr /斌/ 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 -I。
这里没有错误,我们可以看到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:这个过程 " /选择/ HIO-imx6dl板/选择/ 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
答案 0 :(得分:3)
由于${OE_QMAKE_CXX}
为空,这表明您还没有来源environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabiasenvironment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
。
这应该可以手工编译:
. /opt/poky/charles/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
echo $OE_QMAKE_CXX
qmake
make
(假设您不需要将任何额外的参数传递给qmake)。
然后执行以下操作:
. /opt/poky/charles/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
echo $OE_QMAKE_CXX
qtcreator
请注意,您应该从源自environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
的shell中启动qtcreator。
这应该让你去。否则,我建议首先正确构建一个简单的小型Qt应用程序。
有关配置QtCreator的更多信息,您可以查看how to setup QtCreator for cross-compilation。
由于Qt5似乎根本没有包含在SDK中,我们首先必须生成一个合适的SDK。我的首选方式:
bitbake your-image -c populate_sdk
只要你的图像配方包含
,这就有效 inherit populate_sdk_qt5
这会给你一个SDK,其sysroot将匹配你的图像。
"年长的"方式,就是使用特殊的工具链配方。对于Qt5,它将是meta-toolchain-qt5
,或者包含/需要那个的Qt5。在这种情况下,您将运行:
bitbake meta-toolchain-qt5
但是,推荐的方法是使用特定于图像的SDK。