Qt4 在Qt Creator上交叉编译Qt GUI应用程序:库不兼容错误

Qt4 在Qt Creator上交叉编译Qt GUI应用程序:库不兼容错误,qt4,arm,qt-creator,cross-compiling,beagleboard,Qt4,Arm,Qt Creator,Cross Compiling,Beagleboard,我正在尝试为Beaglebord(ARM)编译Qt,并运行一些基本的Hello Word GUI应用程序。我已经为交叉编译构建了Qt,其中包含下面提到的一些错误和警告,并将Qt创建者配置为使用交叉编译工具链。我已经创建了一个简单的Qt GUI项目,但当我尝试构建我的项目时,我会遇到以下错误: :-1: error: skipping incompatible /usr/local/Trolltech/QtEmbedded-4.7.4-generic/lib/libQtGui.so when se

我正在尝试为Beaglebord(ARM)编译Qt,并运行一些基本的Hello Word GUI应用程序。我已经为交叉编译构建了Qt,其中包含下面提到的一些错误和警告,并将Qt创建者配置为使用交叉编译工具链。我已经创建了一个简单的Qt GUI项目,但当我尝试构建我的项目时,我会遇到以下错误:

:-1: error: skipping incompatible /usr/local/Trolltech/QtEmbedded-4.7.4-generic/lib/libQtGui.so when searching for -lQtGui
:-1: error: skipping incompatible /usr/local/Trolltech/QtEmbedded-4.7.4-generic/lib/libQtGui.so when searching for -lQtGui
:-1: error: cannot find -lQtGui
:-1: error: skipping incompatible /usr/local/Trolltech/QtEmbedded-4.7.4-generic/lib/libQtNetwork.so when searching for -lQtNetwork
:-1: error: skipping incompatible /usr/local/Trolltech/QtEmbedded-4.7.4-generic/lib/libQtNetwork.so when searching for -lQtNetwork
:-1: error: cannot find -lQtNetwork
:-1: error: skipping incompatible /usr/local/Trolltech/QtEmbedded-4.7.4-generic/lib/libQtCore.so when searching for -lQtCore
:-1: error: skipping incompatible /usr/local/Trolltech/QtEmbedded-4.7.4-generic/lib/libQtCore.so when searching for -lQtCore
:-1: error: cannot find -lQtCore
:-1: error: collect2: ld returned 1 exit status
此外,列表项Qt Creator->Options->Qt4 Qt Versions列表上有一个黄色警告图标:

我正在使用Ubuntu10.10x86和最新的Angstrom工具链。我已经使用Angstrom online builder构建了我的工具链。我已经用最新的离线Qt SDK v4.7.4安装了我的Qt Creator。之后,我下载了Qt源代码Qt-everywhere-opensource-src-4.7.4.zip,并进行了如下配置:

将qws/linux-arm-gnueabi-g++/qmake.conf更改为:

    #
    # qmake configuration for building with arm-none-linux-gnueabi-g++
    #

    include(../../common/g++.conf)
    include(../../common/linux.conf)
    include(../../common/qws.conf)

    # modifications to g++.conf
    QMAKE_CC                = /home/olcay/armx86/bin/arm-angstrom-linux-gnueabi-gcc
    QMAKE_CXX               = /home/olcay/armx86/bin/arm-angstrom-linux-gnueabi-g++
    QMAKE_LINK              = /home/olcay/armx86/bin/arm-angstrom-linux-gnueabi-g++
    QMAKE_LINK_SHLIB        = /home/olcay/armx86/bin/arm-angstrom-linux-gnueabi-g++

    # modifications to linux.conf
    QMAKE_AR                = /home/olcay/armx86/bin/arm-angstrom-linux-gnueabi-ar cqs
    QMAKE_OBJCOPY           = /home/olcay/armx86/bin/arm-angstrom-linux-gnueabi-objcopy
    QMAKE_STRIP             = /home/olcay/armx86/bin/arm-angstrom-linux-gnueabi-strip

    load(qt_config)
使用以下设置配置Qt:

./configure
    -embedded armv7
    -little-endian
    -xplatform qws/linux-arm-gnueabi-g++
    -qt-gfx-linuxfb
    -qt-gfx-vnc
    -largefile
    -no-accessibility
    -no-qt3support
    -no-sse2
    -qt-libpng
    -qt-libjpeg
    -no-cups
    -no-libtiff
    -nowebkit
    -qt-zlib
    -nomake examples
    -nomake demos
    -opensource
    -confirm-license
    -no-fast
    -multimedia
    -optimized-qmake
是配置脚本的控制台输出

正如您在配置输出中看到的,只有树警告:

for /home/olcay/qt-everywhere-opensource-src-4.7.4/src/3rdparty/webkit/WebKit/qt/tests/hybridPixmap/hybridPixmap.pro
WARNING: Failure to find: hybridPixmap.cpp
for /home/olcay/qt-everywhere-opensource-src-4.7.4/src/3rdparty/webkit/WebKit/qt/tests/benchmarks/loading/loading.pro
WARNING: Failure to find: loading.cpp
for /home/olcay/qt-everywhere-opensource-src-4.7.4/src/3rdparty/webkit/WebKit/qt/tests/benchmarks/painting/painting.pro
WARNING: Failure to find: painting.cpp
还有一个关于浮点格式的警告:

    The system floating point format could not be detected.
    This may cause data to be generated in a wrong format
请帮我找出问题所在。 提前谢谢

更新1

如果您以前读过这个问题,我已经更改了配置,重新编译并安装了Qt,并根据新配置和新结果更新了我的问题。它提供了我去骑的制造安装错误,但主要问题仍然没有解决

更新2


我注意到Qt Creator为linux-g++-32调用qmake而不是为qws/linux-arm-gnueabi-g++调用qmake,因此我用所需设置更改了linux-g++-32/qmake.conf。现在我可以构建我的应用程序了。但我还没有测试二进制应用程序,因为我现在在家。明天我将测试我的申请并将结果发布在这里

您使用了错误的qconf文件。 默认情况下,QtCreater使用linux-g++-32/qmake.conf。
对该文件进行必要的更改。

您使用了错误的qconf文件。 默认情况下,QtCreater使用linux-g++-32/qmake.conf。 对此文件进行必要的更改