Кросс-компиляция приложения Qt GUI на Qt Creator: ошибка несовместимой библиотеки - PullRequest
0 голосов
/ 06 декабря 2011

Я некоторое время пытаюсь скомпилировать Qt для Beaglebord (ARM) и запустить какое-то простое приложение с графическим интерфейсом Hello Word. Я собрал Qt для кросс-компиляции с некоторыми ошибками и предупреждениями, упомянутыми ниже, и настроил мой Qt Creator для работы с моей цепочкой инструментов кросс-компиляции. И я создал простой проект 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:

enter image description here

Я использую Ubuntu 10.10 x86 и последнюю цепочку инструментов Angstrom. Я использовал онлайн-конструктор Angstrom для создания своей цепочки инструментов. Я установил свой Qt Creator с последними оффлайн Qt SDK v4.7.4. После этого я скачал исходный код 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 и обновил мой вопрос на основе новой конфигурации и новых результатов. Это дает мне возможность избежать ошибок make install, но основная проблема все еще не решена.

ОБНОВЛЕНИЕ 2

Я заметил, что Qt Creator вызывает qmake для linux-g ++ - 32 не для qws / linux-arm-gnueabi-g ++ , поэтому я изменил linux -g ++ - 32 / qmake.conf с необходимыми настройками. Теперь я могу построить свое приложение. Но я еще не тестировал бинарный файл приложения, потому что сейчас я дома. Я протестирую свою заявку и опубликую результаты здесь завтра.

1 Ответ

1 голос
/ 15 декабря 2011

Вы используете неправильный файл qconf.QtCreater по умолчанию использует linux-g ++ - 32 / qmake.conf.Сделайте необходимые изменения в этом файле.

...