سؤال

لقد كنت أحاول الحصول على QT X11 Cross المترجمة لـ PowerPC لفترة من الوقت الآن واستمرت في مواجهة مشاكل مختلفة.

من المعلومات الممنوحة لدعم QT الخاص بي ، كل ما يحتاج المرء فعله هو:

  1. إنشاء mkspec جديد
  2. نسخ دليل موجود في mkspec/ لقد استخدمت Linux-G ++ وتعديلها.
  3. تعديل Qmake.conf لاستخدام مجموعة الأدوات والمكتبات وتشمل
  4. قم بتشغيل الأمر التالي التكوين:

    ./configure -arch <your arch> -xplatform <your mkspec> -prefix <where you want Qt installed> <other options>

  5. بعد الانتهاء من التكوين ، قم بتشغيل make ومن بعد make install. ستجد QT مثبتة في الدليل الذي حددته في -prefix اختيار.

كان لديه كل أنواع المشاكل في القيام بذلك.

هل كانت مفيدة؟

المحلول

بلدي الحل:

  1. ينسخ mkspecs/linux-g++ إلى mkspecs/linux-g++-<my arch>
  2. تعديل mkspecs/linux-g++/qmake.conf كما في المثال أدناه. اقرأ التعليقات في ملف المثال للحصول على تفاصيل
  3. لم يكن علي تعديل qplatformdefs.h, ، على الرغم من أنك قد تكون لهندسة المعمارية الخاصة بك
  4. تشغيل البرنامج النصي تكوين مع الخيارات في السؤال الذي عمل مع make و make install
  5. يمكنك الآن تجميع الكود الخاص بك مقابل QT X11 المتقاطع. moc, uic, ، إلخ. تم تجميعها لمضيفك ، لذلك سوف يقومون بإنشاء رمز وفقًا لذلك.
  6. لتشغيل برنامجك باستخدام QT libs المتقاطع ، فقط انسخ /libs من حيث تقوم بتثبيت QT على أهدافك lib المجلد أو يمكنك وضعه في مجلد آخر وتعيين ld_library_path لتضمين QT lib مجلد.

مثال qmake.conf:

#
# qmake configuration for linux-g++-ppc_74xx
#

MAKEFILE_GENERATOR = UNIX
TEMPLATE           = app
CONFIG             += qt warn_on release incremental link_prl
QT                 += core gui
QMAKE_INCREMENTAL_STYLE = sublib

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

#
# Modifications to g++.conf
#
# my_arch-g++ is the full executable path of your g++, make sure your PATH
# contains the directory for your toolchain
#
QMAKE_CC         = my_arch-g++
QMAKE_CXX        = my_arch-g++
QMAKE_LINK       = my_arch-g++
QMAKE_LINK_SHLIB = my_arch-g++

#
# I had to provide includes and libraries for packages my toolchain does not
# provide this is mostly X11 and glib stuff.  You'll either have to
# cross-compile it yourself or get it from your distribution
#
QMAKE_CFLAGS     = -I/path/to/your/includes \
                   -L/path/to/your/libs
QMAKE_CXXFLAGS   = $$QMAKE_CFLAGS

#
# Modifications to linux.conf
#
# Same as g++ stuff above
#
QMAKE_AR          = my_arch-ar cqs
QMAKE_OBJCOPY     = my_arch-objcopy
QMAKE_STRIP       = my_arch-strip

#
# I had all kinds of problems linking Qt source with X11 depending on how I
# specified the include paths.  My toolchain provided most X11 functionality
# and I just had to add missing parts in the CXXFLAGS and CFLAGS,
# but specifying exactly where to find X11 includes and libraries specific
# to my toolchain fixed some of the issues I experienced
#
QMAKE_INCDIR_X11  = /path/to/your/toolchain/includes
QMAKE_LIBDIR_X11  = /path/to/your/toolchain/libs

load(qt_config)

تحديث:

سيعمل هذا الحل لتجميع "مستقل". إذا كنت بحاجة إلى إنشاء QT X11 لـ Angstrom و OpenEmbedded و Android و OpenWrt ، وما إلى ذلك ، فسيتعين عليك استخدام أنظمة الإنشاء الخاصة بها للتجميع المناسب. على سبيل المثال ، بالنسبة للأهداف المفتوحة (أي Angstrom) ، سيتعين عليك كتابة وصفة bitbake.

حدثت هذه المشكلة بسبب الحاجة إلى دعم الأنظمة القديمة. باستخدام QT المضمن لم يكن خيارًا. بالنسبة للمشاريع الجديدة ، أوصي بشدة باستخدام QT المضمن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top