Mohanad Kaleia

Idea for a cause

Cross Compilation of QT/C++ application for Windows under Linux

السلام عليكم ورحمة الله

من المعروف أن لغة C++ هي من بين اللغات التي يمكن أن تعمل على مختلف أنظمة التشغيل .. والتي تسمى cross-platform language، حيث يمكنك ان تقوم بكتابة برنامج وبناءه ليعمل على نظام تشغيل Windows و Linux وحتى على الموبايل..

في هذه المقالة سأشرح كيف نقوم ببناء مشروع QT based application على نظام Ubuntu بحيث يعمل على نظام Windows

الأدوات المستخدمة:

  • نظام التشغيل Ubuntu 16.04
  • بيئة التطوير: Qt Creator 4.0.3 Based on Qt 5.7.0
  • معمارية المعالج: Intel 64bit
  • أداة الترجمة التي سيتم استخدامها: MXE
  • نظام التشغيل الهدف Windows 10 64bit
  • C++11

تنصيب أدارة الترجمة MXE

قبل أن نقوم بتنصيب الأداة لنأخذ لمحة عنها، MXE هي أداة تستعمل مترجم Mingw لترجمة المكتبات والبرامج على مختلف بيئات وأنظمة التشغيل. تعمل هذه الأداة على أنظمة تشغيل Unix.

الآن لتنصيب الأداة لنقم بالبداية بتحميلها، ملاحظة أنا أفضل أن يتم تحميل الأداة مباشرة في مكان التنصيب، عندي أفضل تنصيبه ضمن مجلد /opt

cd /opt

git clone https://github.com/mxe/mxe.git

الآن قبل أن نقوم بعملية التنصيب علينا أن نقوم بتنصيب جميع الاعتماديات اللازمة:

apt-get install \
    autoconf automake autopoint bash bison bzip2 flex gettext\
    git g++ gperf intltool libffi-dev libgdk-pixbuf2.0-dev \
    libtool libltdl-dev libssl-dev libxml-parser-perl make \
    openssl p7zip-full patch perl pkg-config python ruby scons \
    sed unzip wget xz-utils
apt-get install g++-multilib libc6-dev-i386
apt-get install libtool-bin

 

الآن علينا أن نقوم ببناء الأداة كما يلي:

cd mxe && make MXE_TARGETS=x86_64-w64-mingw32.static qt5

الآن علينا تضمين مسار مجلد البرامج التنفيذية bin لمتحول البيئة PATH كما يلي:

export PATH=/opt/mxe/usr/bin:$PATH

 

قم ببناء برنامجك الآن 

الآن كل شيء أصبح جاهز لنقوم ببناء برنامجنا ليعمل على بيئة ويندوز، سأفترض أنه لديك برنامج جاهز لعملية البناء، كل ما عليك فعله الآن هو أن تقوم بالذهاب إلى مسار برنامجك، وتوليد ملف make كمايلي:

/opt/mxe/usr/bin/x86_64-w64-mingw32.static-qmake-qt5

هل كل شيء سار على مايرام؟ الآن قم بتنفيذ تعليمة make:

make

لا يوجد أخطاء؟ رائع! .. الآن برنامج التنفيذي أصبح جاهز وموجود ضمن مجلد release، يمكنك تجربته على بيئة ويندوز، أو يمكن مباشرة أن تقوم بتجربته من خلال المحاكي Wine

 

في حال وجود استفسارات أرجو ترك رد.. بالتوفيق

 

المصادر:

http://stackoverflow.com/questions/14170590/building-qt-5-on-linux-for-windows/14170591

http://www.neologix.ae/cross-platform.html

http://mxe.cc/

Master Student at University of Oklahoma,
Electrical and Computer Engineering

One Comment

  • Reply مهند شب قلعية |

    في حال ظهور مشكلة التالية:

    make[1]: x86_64-w64-mingw32.static-g++: Command not found

    المشكلة هي بتضمين مسار mxe ضمن متغير البيئة $PATH .. عليك أن تقوم بالتالي لإضافة مسار mxe التنفيذي إلى متحول البيئة:

    export PATH=/opt/mxe/usr/bin:$PATH

Post a comment

  • *