【问题标题】:Error while compiling Qt embedded for Beagleboard (ARM)为 Beagleboard (ARM) 编译嵌入式 Qt 时出错
【发布时间】:2011-12-03 09:19:56
【问题描述】:

我正在尝试为 ARM 编译 Qt 嵌入式。我已按照herehere 的说明进行操作。我使用的是最新的 Angstrom 工具链和 qt-embedded-linux-opensource-src-4.5.3,我使用的是 Ubuntu 10.10 x86。

我过去的步骤:

  • 为我的工具链配置了 qws/linux-arm-g++/qmake.conf 文件。内容如下:

    #
    # qmake configuration for building with arm-linux-g++
    #
    
    include(../../common/g++.conf)
    include(../../common/linux.conf)
    include(../../common/qws.conf)
    
    # modifications to g++.conf
    QMAKE_CC                = arm-angstrom-linux-gnueabi-gcc
    QMAKE_CXX               = arm-angstrom-linux-gnueabi-g++
    QMAKE_LINK              = arm-angstrom-linux-gnueabi-g++
    QMAKE_LINK_SHLIB        = arm-angstrom-linux-gnueabi-g++
    
    # modifications to linux.conf
    QMAKE_AR                = arm-angstrom-linux-gnueabi-ar cqs
    QMAKE_OBJCOPY           = arm-angstrom-linux-gnueabi-objcopy
    QMAKE_STRIP             = arm-angstrom-linux-gnueabi-strip
    
    load(qt_config)
    
  • 设置我的工具链路径:

    export PATH=/home/olcay/angstrom/arm/bin:$PATH
    
  • 配置qt:

    ./configure -arch arm -little-endian -xplatform qws/linux-arm-g++
    
  • 运行 make。

运行 make 时出现此错误:

make[1]: Entering directory `/home/olcay/qt-embedded/src/corelib'
arm-angstrom-linux-gnueabi-g++ -c -pipe -fno-exceptions -O2 -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -I../../mkspecs/qws/linux-arm-g++ -I. -I../../include -I../../include/QtCore -I.rcc/release-shared-emb-arm -Iglobal -I../3rdparty/zlib -I../3rdparty/harfbuzz/src -I.moc/release-shared-emb-arm -o .obj/release-shared-emb-arm/qatomic_arm.o arch/arm/qatomic_arm.cpp
/home/olcay/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++: 1: ELF: not found
/home/olcay/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++: 2: Syntax error: word unexpected (expecting ")")
make[1]: *** [.obj/release-shared-emb-arm/qatomic_arm.o] Error 2
make[1]: Leaving directory `/home/olcay/qt-embedded/src/corelib'
make: *** [sub-corelib-make_default-ordered] Error 2

我还注意到,虽然 config 在 make 中有一个警告和相同的错误行:

    The system floating point format could not be detected.
    This may cause data to be generated in a wrong format
    Turn on verbose messaging (-v) to see the final report.
    /home/olcay/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++: 1: ELF: not found
    /home/olcay/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++: 2: Syntax error: word unexpected (expecting ")")

按照@Luca Carlon 的描述更改配置行并不能解决问题。

请帮帮我! 提前致谢。

【问题讨论】:

    标签: qt ubuntu arm cross-compiling


    【解决方案1】:

    我注意到我已经下载了适用于 64 位主机平台的 Angstrom 工具链,但我使用的是 32 位主机。下载正确的工具链后,我设法编译了 Qt。我发现当您尝试运行不是为您的架构构建的应用程序时,会出现“未找到 ELF”错误。

    【讨论】:

      【解决方案2】:

      如果您想构建 Qt Embedded,请将 -arch arm 替换为 -embedded arm 并重试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-13
        • 1970-01-01
        • 2012-04-29
        • 2014-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多