首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为QNX目标(arm)构建QT5.1

如何为QNX目标(arm)构建QT5.1
EN

Stack Overflow用户
提问于 2013-09-06 20:28:45
回答 2查看 6.9K关注 0票数 4

新更新

我想我现在应该编辑标题了。

为了确保我有一个干净的环境

  1. 从qt-prject下载qt5.1.1 src代码。
  2. 导出QNX_TARGET、QNX_HOST并将QNX_HOST添加到PATH中。
  3. 然后运行脚本./configure -opensource -confirm-license -xplatform qnx-armv7le-qcc -v

因此,在这里,-opensource -确认-许可只是避免问答-v是显示完整的信息。

很多错误信息。

代码语言:javascript
复制
Creating qmake...
make: Nothing to be done for `first'.
Running configuration tests...
Determining architecture... ()
qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -g -Wall -W -fPIE -DQT_NO_CLIPBOARD -I../../mkspecs/qnx-armv7le-qcc -I. -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -o arch.o arch.cpp
Unable to determine architecture!

Could not determine the target architecture!
Turn on verbose messaging (-v) to see the final report.
Determining architecture... ()
g++ -c -pipe -g -Wall -W -fPIE  -I../../mkspecs/linux-g++ -I. -o arch.o arch.cpp
g++  -o arch arch.o    { test -n "" && DESTDIR="" || DESTDIR=.; } && test $(gdb --version | sed -e 's,[^0-9]\+\([0-9]\)\.\([0-9]\).*,\1\2,;q') -gt 72 && gdb --nx --batch --quiet -ex 'set confirm off' -ex "save gdb-index $DESTDIR" -ex quit 'arch' && test -f arch.gdb-index && objcopy --add-section '.gdb_index=arch.gdb-index' --set-section-flags '.gdb_index=readonly' 'arch' 'arch' && rm -f arch.gdb-index || true
Found architecture in binary
CFG_HOST_ARCH="x86_64"
CFG_HOST_CPUFEATURES=" mmx sse sse2"
System architecture: 'unknown'
Host architecture: 'x86_64'
C++11 auto-detection... ()
qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -O2 -Wc,-std=gnu++0x -Wall -W -fPIE-DQT_NO_CLIPBOARD -I../../../mkspecs/qnx-armv7le-qcc -I. -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -o c++11.o c++11.cpp
C++11 disabled.
floatmath auto-detection... ()
qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -O2 -Wall -W -fPIE -DQT_NO_CLIPBOARD-I../../../mkspecs/qnx-armv7le-qcc -I. -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -o floatmath.o floatmath.cpp
qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -O2 -Wall -W -fPIE -DQT_NO_CLIPBOARD -I../../../mkspecs/qnx-armv7le-qcc -I. -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -o freetype.o freetype.cpp
FreeType disabled.
STL auto-detection... ()
qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -O2 -Wall -W -fPIE -DQT_NO_CLIPBOARD -I../../../mkspecs/qnx-armv7le-qcc -I. -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -o stltest.o stltest.cpp
STL disabled.
STL functionality check failed! Cannot build Qt with this STL library.
Turn on verbose messaging (-v) to /home/pasadeveloper/qt-everywhere-opensourcesrc-5.1.1/qtbase/configure to see the final report.

更新:我正在为ARM开发QNX,目标是一个arm平台设备。事情变得越来越奇怪了。在Env Var,我把

代码语言:javascript
复制
$QNX_CONFIGURATION=/etc/qnx
$QNX_JAVAHOME=/opt/qnx650/_jvm
$QNX_TARGET=/opt/qnx650/target/qnx6
$QNX_HOST=/opt/qnx650/host/linux/x86

但是,当我执行qmake qmake.conf mkspecs/qnx-armv7le-qcc文件夹时,它将返回一个错误消息Project ERROR: QNX_TARGET environment variable not set

不知道现在发生了什么。

不只是qmake qmake.conf,我尝试在另一个主机ubuntu12.0464位上构建qt5.1.2。也会得到相同的错误消息。Project ERROR: QNX_TARGET environment variable not set

我在linux下进行Qt开发(FYI Ubuntu 12.04 -64位),但我需要将这个程序编译成QNX的二进制程序。我安装了QNX MOmentics IDE,它为我提供QNX。但我找不到qmake。

在QT/gcc_64/mkspecs/qnx-armv7le-qcc下,有一个文件调用qmake.conf。我想这就是我可以生成qmake的地方。在运行qmake -o Makefile qmake.conf之后,将生成一个Makefile。

但是,当我运行make时,会出现错误。

代码语言:javascript
复制
qcc -Vgcc_ntoarmv7le -lang-c++ -Wl,-rpath-link,/opt/qnx650/target/qnx6/armle-v7/lib -Wl,-rpath-link,/opt/qnx650/target/qnx6/armle-v7/usr/lib -Wl,-O1 -Wl,-O1 -Wl,-rpath,/home/pasadeveloper/Qt5.1.0/5.1.0/gcc_64 -Wl,-rpath,/home/pasadeveloper/Qt5.1.0/5.1.0/gcc_64/lib -o qmake    -L/opt/qnx650/target/qnx6/armle-v7/lib -L/opt/qnx650/target/qnx6/armle-v7/usr/lib -lm -L/home/pasadeveloper/Qt5.1.0//5.1.0/gcc_64/lib -lQt5Gui -lQt5Core -lGL -lpthread 

cc: no files to process make: *** [qmake] Error 1 pasadeveloper@ubuntu:~/Qt5.1.0/5.1.0/gcc_64/mkspecs/qnx-armv7le-qcc$

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-06 23:09:00

你不会像那样“生成”你的qmake。您应该使用本机qmake为您的目标生成适当的makefile,以帮助交叉编译。另外,在相关的mkspecs文件夹中运行qmake qmake.conf是错误的,因为这不是您可能认为的项目文件。

例如,在构建Qt本身时,您应该为目标使用适当的mkspecs文件--在这种情况下,如果它是为特定的arm qnx变体(称为qnx-armv7le-qcc )构建的,那么它也是您前面提到的。

下面是下载相关Qt源后需要运行的确切命令,如5.1.1:

代码语言:javascript
复制
./configure -opensource -confirm-license -xplatform qnx-armv7le-qcc -v

对于这个QNX版本,底线是,如果您没有SP1和libscreen,它将无法工作。QPA插件将链接到它。此库在较新的QNX变体上向图形服务器提供API。你得和你的QNX代表谈谈。

这里您可以找到有关该主题的更多信息。

票数 4
EN

Stack Overflow用户

发布于 2014-12-01 20:09:04

$QNX_target=/opt/QNX 650/target/QNX 6

可能没有做你想做的事。在shell脚本中,定义变量时不将"$“放在变量前面,只有在访问变量时:

X=hello

回波$X

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18666094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档