新的更新

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

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

  • 从qt-prject下载qt5.1.1 src代码。
  • 导出QNX_TARGET,QNX_HOST,并将QNX_HOST添加到PATH。

  • 然后运行脚本./configure -opensource -confirm-license -xplatform qnx-armv7le-qcc -v

  • 因此在这里,-opensource -confirm-license只是避免了常见问题解答-v是显示完整消息。

    很多错误信息。
    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.
    

    更新:
    我正在使用QNX for ARM,目标是Arm平台设备。
    事情变得奇怪了。在Env Var中,我把
    $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
    我尝试在另一台主机ubuntu 12.04-64bit上构建qt 5.1.2。
    也得到同样的错误信息。 Project ERROR: QNX_TARGET environment variable not set
    我当时在Linux(FYI Ubuntu 12.04 -64bits)下进行Qt开发,但是我需要将该程序编译为QNX二进制文件。
    我安装了为我提供QNX-gcc的QNX MOmentics IDE。
    但我找不到qmake-qnx。

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

    但是,当我运行make时,发生了错误。
    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$

    最佳答案

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

    例如,在构建Qt本身时,应该为目标使用适当的mkspecs文件,如果它是为特定的arm qnx变体qnx-armv7le-qcc构建的,则也就是上面提到的文件。

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

    ./configure -opensource -confirm-license -xplatform qnx-armv7le-qcc -v
    

    对于此QNX版本,最重要的是,如果没有SP1和libscreen,它将无法工作。 QPA插件将与其链接。该库在较新的QNX变体上为图形服务器提供API。您需要与QNX代表联系。

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

    09-04 08:42