Cross-compiling
احتمالا تا به این لحظه به ذهن تان خطور کرده است که چطور میتوان از طریق کامپیوتر شخصی برای رزبری پای برنامه نویسی کرد و با یک کلیک برنامه مورد نظر را بر روی رزبری پای اجرا و اشکال زدایی کرد ، درست مثل زمانی که در محیط نرم افزار آردوینو برنامه را می نویسید ، کامپایل و روی برد اجرا می کنید ، بله درست حدس زدید به این کار کراس کامپایل گفته می شود (کامپایل کردن یک برنامه روی یک ماشین و تولید کد قابل اجرا برای یک ماشین و یا دستگاه متفاوت) و این روش برای رزبری پای هم عملی می باشد.
معرفی مختصر Qt
یکی از بزرگترین نقطه ضعف های زبان برنامه نویسی قدرتمند ++C در گذشته ، نبود کتابخانه های گرافیکی قوی برای ساخت رابط کاربری بود و این نکته باعث به وجود آمدن Qt (تلفظ کنید کیوت) شد . Qt یک فریم ورک کراس پلتفورم برای زبان ++C می باشد و دارای کتابخانه های بسیار قدرتمند در زمینه رابط کاربری ، گرافیک دو بعدی و سه بعدی ، شبکه ، ارتباط با سخت افزار ، پردازش موازی و … است ، کراس پلتفرم بودن Qt این امکان را به ما می دهد که یک بار در یک سیستم عامل کد را نوشته و در سیستم عامل های دیگر به سادگی همان کد را کامپایل کرده و برنامه را اجرا کرد ، امروز Qt اکثر سیستم عامل های محبوب را پشتیبانی می کند از جمله (iOS,Windows,Windows CE,Windows RT,Linux, FreeBSD, HP-UX, Solaris,Android,OS X,Embedded Linux…) از مزیت دیگر Qt منبع باز بودن و وجود نسخه رایگان آن است که به محبوبیت این ابزار قدرتمند بسیار کمک کرده است .
Qt در دنیای Embedded
Qt در دنیای سیستم های درونه ای پا را فراتر گذاشته و با معرفی QtQuick و زبان اسکریپتی QML بستر بسیار مناسبی برای گسترش برنامه های کاربردی با ظاهری کاربر پسند فراهم کرده است به طوری که با وجود این تکنولوژی می توان برنامه هایی با رابط کاربری بسیار مدرن برای دستگاه هایی مثل انواع گوشی های هوشمند ، خودروها ، سیستم های مونیتورینگ صنعتی و ابزارهایی با صفحات لمسی و … با کمک پردازندهی گرافیکی گسترش داد ، در ویدئو زیر می توانید نمونه ای از این برنامه ها را درسخت افزار های مختلف از جمله رزبری پای ببینید.
شروع کار و ابزارهای مورد نیاز
در این آموزش ما قصد داریم از طریق کامپیوتر شخصی خود (هاست) که روی آن سیستم عامل ویندوز نصب است کراس کامپایل را انجام دهید ، به این صورت که ابتدا ابزار مورد نیاز برای کراس کامپایل Qt را بر روی هاست نصب و Qt را از سورس آن برای رزبری پای کراس کامپایل می کنیم و بعد از ساخته شدن فایلها ، آنها را به رزبری پای انتقال می دهیم از آن به بعد تنها نیاز است شما در محیط Qt روی هاست پروژه را ایجاد کنید و با زدن دکمه اجرا برنامه روی رزبری پای اجرا خواهد شد (از طریق شبکه انتقال انجام می شود) ، بدین منظور مراحل زیر را به ترتیب و با دقت طی کنید.
۱ – دانلود آخرین نسخه ایمیج RASPBIAN و رایت کردن آن روی SD کارت (آخرین نسخه در این زمان RASPBIAN JESSIE WITH PIXEL ۲۰۱۶-۰۹-۲۳).
۲- دانلود cross-toolchain متناسب با ایمیج RASPBIAN و نصب آن (از ستون سمت راست raspberry-gcc-4.9.2-r4.exe ۷۳۸ MB) ، توجه کنید در هنگام نصب به هیچ وجه مسیر و تنظیمات پیشفرض را تغییر ندهید و دقیقا مانند تصویر زیر انجام دهید.
۳ – دانلود و نصب MinGW toolchain نسخه (mingw32-gcc4.8.1.exe) ، مسیر پیشفرض و تنظیمان تغییر نکند.
۴ – دانلود و نصب Python 2.7 for Windows و بعد از نصب حتما مطمئن شوید که محل نصب به متغیر Path ویندوز اضافه شده باشد (معمولا باید به صورت دستی اضافه شود).
۵ – دانلود پکیج سورس Qt نسخه qt-everywhere-opensource-src-5.6.1.tar.xz و انتقال فایل به مسیر C:\Qt
۶ – در این مرحله قصد داریم کتابخانه های لازم برای کراس کامپایل را بر روی رزبری پای خود نصب کنید ، برای این منظور ابتدا نیاز است که رزبری پای خود را از طریق شبکه بی سیم یا به صورت کابلی با هاست خود شبکه کنید. وسپس از مسیر C:\SysGCC\Raspberry\TOOLS\PortableSmartty در هاست نسخه قابل حمل برنامه SmarTTY را که یک کلاینت SSH است اجرا کرده و یک کانکشن به رزبری پای خود ایجاد کنید (مطمئن شوید SSH بر روی رزبری پای فعال باشد) ، حال میتوانید از طریق این برنامه دستورات لازم را بر روی رزبری پای اجرا کنید و همچنین فایل های لازم را انتقال دهید.
به ترتیب دستورات زیر را بر روی رزبری پای اجرا کنید
sudo nano /etc/apt/sources.list
در فایل sources.list خط deb-src را از حالت کامنت خارج کنید و با زدن کلید های Ctrl+O و بعد Enter فایل را ذخیره و با Ctrl+X از برنامه nano خارج شوید.
دستورات زیر را به ترتیب اجرا کنید ، منتظر شوید تا پکیج های مورد نیاز نصب شوند.
sudo apt-get update sudo apt-get build-dep qt4-x11 sudo apt-get build-dep libqt5gui5 sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0
۷ – قبل از شروع کامپایل Qt نیاز داریم که همه کتابخانه ها ی روی رزبری پای را با پوشه sysroot روی هاست سینک کنیم تا مطمئن شویم که در هنگام کامپایل همه کتابخانه های مورد نیاز در دسترس کامپایلر خواهند بود ، برای این منظور از مسیر C:\SysGCC\Raspberry\TOOLS
اسکریپت UpdateSysroot.bat را اجرا کنید از قسمت Targeted Linux Machin اتصال SSH که قبلا ایجاد کرده اید را انتخاب و روی دکمه Synchronize کلیک کنید و منتظر شوید تا همه فایلها انتقال پیدا کنند.
۸ – برنامه Msys را از مسیر زیر اجرا کنید (شبیه ساز شل لینوکس)
C:\SysGCC\MinGW32\msys\1.0\msys.bat
۹ – از طریق دستور cd /c/Qt به مسیری که در آن فایل پکیج سورس Qt را ذخیره کرده بودید وارد شوید و با دستور tar xf qt-everywhere-opensource-src-5.6.1.tar.xz پکیج را استخراج کنید .
۱۰ – مطمئن شوید که مسیر های مربوط به MinGW gcc compiler و Raspberry Pi cross-compile در متغیر Path ویندوز اضافه شده اند ، برای این کار کافیست در msys دستورات زیر را وارد کنید و نتیجه را مشاهده کنید.
which gcc which arm-linux-gnueabihf-gcc
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
۱۷ – بعد از اینکه مراحل کانفیگ به پایان رسید می توانید مرحله اصلی کامپایل را انجام دهید ، برای این کار فقط کافیست دستور make را وارد کنید تا کامپایل شروع شود ، توجه کنید که این مرحله چند ساعتی طول می کشد و به دلیلی که نمی دانم استفاده از حالت چند پروسسی دراین مرحله جواب نمی دهد (make -j) .
اگر کامپایل با موفقیت انجام شد ، شما بخش مشکل کار را به انجام رسانده اید و در صورتی که خطایی ظاهر شد میتوانید با توجه به پیغامها آن را اصلاح کنید و مجددا دستور make را اجرا کنید .
۱۸ – بعد از پایان کامپایل Qt با زدن دستون make install فایهای کامپایل شده را به مسیر کراس کامپایلر انتقال دهید و این مرحله هم چند دقیقه ای زمان می گیرد ، اگر از توان سیستم خود مطمئن هستید 😉 می توانید این مرحله را به صورت چند پروسسی اجرا کنید (make install -j)
و زمان را سیو کنید.
۱۹ – مجددا برنامه SmarTTY اجرا کنید و به رزبری پای خود متصل شوید و با دستورات زیر مسیری برای انتقال فایلهای Qt به روی رزبری پای ایجاد کنید.
cd /usr/local sudo mkdir qt5 sudo chown pi qt5
۲۰ – از طریق SmarTTY و از منوی SCP->Upload directory فایلهای کامپایل شده را از هاست به مسیری که بر روی رزبری پای ایجاد کردید انتقال دهید ،
از مسیر C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\usr\local\qt5 بر روی هاست
به مسیر /usr/local/qt5 بر روی رزبری پای
بسته به سرعت لینک بین رزبری پای و هاست شما این مرحله هم چند دقیقه ای زمان می گیرد ، پس لطفا صبور باشید .
۲۱ – بعد از اتمام کار انتقال اکنون شما می توانید برنامه های نمونه Qt را بر روی رزبری پای اجرا کنید برای این کار در همان اتصال جاری SmarTTY به مسیر زیر بروید
/usr/local/qt5/examples/opengl/qopenglwidget
و فایل qopenglwidget (دستور qopenglwidget/.) را اجرا کنید و میتوانید نتیجه بر روی نمایشگری که به HTMI رزبری پای یا DSI رزبری پای متصل است را ببینید .
توجه داشته باشید که به این روش برنامه هایی که با Qt ساخته شده و بر روی رزبری پای اجرا می شوند مستقیما بر روی فرم بافر نمایشگر رزبری پای نمایش داده شده و شما نمی توانید بر روی VNC و یا برنامه های remote دیگر خروجی آنها را مشاهده کنید ، همچنین در این صورت برنامه ها توسط Windows Manager سیستم عامل مدیریت نمی شوند و شما دکمه های بستن یا کوچک کردن پنچره برنامه را در اختیار ندارید و برنامه به صورت تمام صفحه بر روی هر چیز دیگری که در صفحه نمایش رزبری پای در حال نمایش است ، نمایش داده می شود و برای خارج شدن از برنامه باید منو یا دکمه ای برای بستن در نظر گرفته باشید ، این خصوصیات به دلیل استفاده از کلید opengl es2 در هنگام کانفیگ سورس Qt می باشد ، در این حالت حتی نیاز نیست که محیط گرافیکی سیستم عامل اجرا شده باشد و شما می توانید برای کار برد های خاص پکیج های مربوط به محیط گرافیکی سیستم عامل را حذف کنید و برنامه را طوری تنظیم کنید که بعد از بوت شدن سیستم عامل به صورت خودکار اجرا شده در این صورت هم سرعت اجرا و هم کارایی برنامه بالاتر می رود.
تصویر زیر برنامه نمونه اجرا شده بر روی رزبری پای می باشد ، برای توقف برنامه ها می توانید از کلید های ترکیبی Ctrl+C در برنامه SmarTTY استفاده کنید .
۲۲ – مرحله آخر ، نصب IDE فریم ورک Qt در هاست خود و همچنین اضافه کردن کیت کراس کامپایلر رزبری پای بر روی آن است . برای این کار از اینجا آخرین نسخه Qt برای ویندوز دانلود و نصب کنید ، بعد از نصب QtCreator را اجرا کنید وارد منوی Tools – > Options شده و به تپ Devices و Build & Run رفته و تنظیمات را مانند زیر انجام دهید .
Devices Add Type : Generic Linux Device Name : Rasbperry pi2 Host name : Rasbperry Pi IP address Username : Rasbperry Pi user name Password : Rasbperry Pi password you can test SSH connection by Test button Build & Run-->Debuggers Add Name : Rasbperry Debugger path : C:\SysGCC\Raspberry\bin\arm-linux-gnueabihf-gdb-7.10.exe Build & Run-->Compilers Add -> GCC name : GCC Compiler path: C:\SysGCC\Raspberry\bin\arm-linux-gnueabihf-g++.exe Build & Run-->Qt Versions add... -> open qmake.exe under C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\usr\local\qt5\bin Build & Run-->Kits Add Name : Rasbperry Pi Qt 5.6.1 Device type: Generic Linux Device Device : Rasbperry pi2 (the one you just created) Sysroot : C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot Compiler : GCC (the one you just created) Debugger : Rasbperry Debugger (the one you just created) Qt version : Qt 5.6.1 (qt5) (the one you just created) Qt mkspec : leave empty
حال بعد از ایجاد پروژه و اضافه کردن Kit رزبری پای کافیست کد زیر را به فایل پروژه اضافه کنید تا بعد از کامپایل ، فایل به رزبری پای انتقال پیدا کند و اجرا بشود
target.path = /home/pi/ <- محل انتقال فایل بر روی رزبری
INSTALLS += target
ویدئو زیر یکی دیگر از برنامه های نمونه Qt که بر روی زربری پای اجرا شده است را نمایش می دهد.
بعد از اتمام همه مراحل می توانید نسخه پستیبانی از دایرکتوری C:\SysGCC تهیه کنید تا در استفاده های آتی بر روی کامپیوتر خود یا حتی کامپیوتر های دیگر ، نیاز به طی کردن همه مراحل از ابتدا نباشد و در آن صورت فقط کافیست مسیر C:\SysGCC را ایجاد کرده و محتویات فایل پشتیبان را به آن انتقال دهید و مراحل ۶-۱۹-۲۰-۲۲ را بر روی کامپیوتر جدید و رزبری پای جدید اعمال کنید و باز هم راه حل ساده تر تهیه ایمیج از نسخه فعلی رزبین آماده شده برای کراس کامپایل از روی رزبری پای و تهیه پشتیبان از دایرکتوری C:\SysGCC از کامپیوتر است ، که در کامپیوتر جدید فقط نیاز به باز گردانی نسخه پشتیبان C:\SysGCC و انجام مرحله ۲۲ به تنهایی و در رزبری پای جدید رایت ایمیج تهیه شده بر روی SD کارت می باشد . و اما لازم به ذکر است که شما می توانید Qt را از طریق منابع رسمی رزبری پای بر روی خود رزبری پای به راحتی نصب کنید ولی در آن صورت باید از خود رزبری پای برای توسعه برنامه استفاده کنید ، از این روش با ایجاد تغییرات جزئی در مرحله کانفیک سورس می توانید Qt برای برد های دیگر مثل بیگل بن و … کامپایل کنید.
در صورت استقبال ، کراس کامپایل Qt برای رزبری پای از طریق هاست لینوکس را هم آماده می کنم در ضمن کل این آموزش ها در صورت تقاضا به صورت ویدئو هم قابل ارایه است .
در مقاله بعدی با هم می بینیم که چطور می توان از طریق Qt و با استفاده از کتابخانه قدرتمند WiringPi با سخت افزار رزبری پای ارتباط برقرار کرد .
امیدوارم مفید بوده باشد.
سلام
واقعا عالی بود، ممنون
اگر لطف کنید و آموزش تصویری از مراحل را آماده کنید لطف بزرگی میکنید.
سپاس
خواهش می کنم ، فرصت بشه حتما .
با سلام
این روش برای ورژن ۵٫۷٫۰ هم جواب میده ؟
سلام ، خیر
خدا خیرتون بده دمتون گرم بابا چقدر دنبال این مطلب بودم
با سلام و تشکر از این مطلب ارزنده تان
جناب آقای طاهری بنده با قسمت ۱۱ کمی مشکل دارم، لطفا راهنمایی دقیق تر بفرمایید. وقتی وارد مسیر زیر میشوم.
C:\Qt\qt-everywhere-opensource-src-5.6.1\qtbase\mkspecs\linux-arm-gnueabi-g
فایل qmake.conf را نمیتونم پیدا کنم. چه باید بکنم؟
سلام
آدرسی که شما نوشتید در سورس Qt وجود ندارد ، شما باید به این آدرس بروید
++qt-everywhere-opensource-src-5.6.1\qtbase\mkspecs\linux-arm-gnueabi-g
و اگر در این آدرس فایل qmake.conf وجود ندارد ! یا اینکه فایل سورس Qt مشکل دارد و یا به صورت صحیح اکسترکت نشده است.
سلام خیلی خوب بود لطفا این مباحث را بصورت ویدیویی و حتی فروشی هم که شده آماده کنید منتظریم
باز هم متشکرم perfect
سلام. من روی رزبری این دستور رو که اجرا میکنم خطا میده
sudo apt-get build-dep qt4-x11
و هر بار هم که اجرا میکنم خطا میده یعنی یکسری از پکیجهاش رو نصب میکنه و چند تا رو خطا میده. حتی گفته بود که این رو اجرا کنم ولی نشد :
sudo dpkg –configure -a
ولی باز هم آخرش همون خطاها رو میده.
یکبار دیگه روی یه میکرو sd دیگه هم رزبین رو ریختم ولی بام نشد.
سلام
لطفا متن ارور را قرار بدید.
سلام و خسته نباشید
میخواستم بپرسم برای برنامه هایی که با ورژن ۵٫۹ نوشته شده اند باید چی کار کرد؟
سلام مچکرم
برای Qt 5.9 باید چند مرحله بیشتر انجام دهید ، که خوب کار را یه مقداری مشکل می کنه ، اگر فرصت شد و خودم موفق به کراس کامپایل شدم حتما مراحل را قرار می دهم.
مرسی دوست عزیز
واقعا معرکه بود احسنت :*
با سلام
از توجه شما سپاسگزارم.
با عرض سلام و روز بخیر و تشکر فراوان برای اموزشهای کار امد
من قصد استفاده از qt رو دارم و در مرحله۱۳ به مشکل برخوردم سیستم همان پرسش و پاسخهای ذکر شده در اموزش رو به صورت زیر انجام میده اما در مرحله ۱۴ خطایی که در زیر اومده داده میشه لطفا راهنمایی کنید چطور از این مرحله عبور کنم متشکرم
$ ../qt-everywhere-opensource-src-5.6.1/configure -platform wi
n32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2
-device linux-rasp-pi2-g++ -sysroot C:/SysGCC/Raspberry/arm-li
nux-gnueabihf/sysroot -prefix /usr/local/qt5
+ cd qtbase
+ /c/Qt/qt-everywhere-opensource-src-5.6.1/qtbase/configure -top-level -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2 -device linux-rasp-pi2-g++ -sysroot C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5
Which edition of Qt do you want to use ?
Type ‘c’ if you want to use the Commercial Edition.
Type ‘o’ if you want to use the Open Source Edition.
o
This is the Qt Open Source Edition.
You are licensed to use this software under the terms of
the Lesser GNU General Public License (LGPL) versions 2.1.
You are also licensed to use this software under the terms of
the GNU Lesser General Public License (LGPL) versions 3.
Type ‘3’ to view the GNU Lesser General Public License version 3.
Type ‘L’ to view the Lesser GNU General Public License version 2.1.
Type ‘yes’ to accept this license offer.
Type ‘no’ to decline this license offer.
Do you accept the terms of either license? yes
Preparing build tree…
Running configuration tests (phase 1)…
Done running configuration tests.
/c/Qt/qt-everywhere-opensource-src-5.6.1/qtbase/configure: line 3996: [: â?”f: binary operator expected
Running configuration tests (phase 2)…
Failed to process makespec for platform ‘devices/linux-rasp-pi2-g++’
Turn on verbose messaging (-v) to see the final report.
afq@DESKTOP-TQ8GV3T /c/Qt/qt-build
$ qtbase/bin/qmake -v
sh: qtbase/bin/qmake: No such file or directory
من با اجرای مجدد دستورات از این مرحله گذشتم و در مرحله ۱۶ مجدد گیر کردم خطوط پایانی پاسخ سیستم به صورت زیر است
NOTE: Qt is using double for qreal on this system. This is binary incompatible against Qt 5.1.
Configure with ‘-qreal float’ to create a build that is binary compatible with 5.1.
Project ERROR: CROSS_COMPILE needs to be set via -device-option CROSS_COMPILE=
Could not read qmake configuration file c:/Qt/qt-everywhere-opensource-src-5.6.1/qtbase/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf.
و یک خطا را گوشزد می کند .و دستور make هم همانطور که مشاهده می کنید انجام نمیشود . لطفا برای رفع مشکل راهنمایی کنید ممنونم.
Error processing project file: c:\Qt\qt-everywhere-opensource-src-5.6.1\qt.pro
afq@DESKTOP-TQ8GV3T /c/Qt/qt-build
$ make
make: *** No targets specified and no makefile found. Stop.
سلام
به نظر میرسد که دستور
../qt-everywhere-opensource-src-5.6.1/configure -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2
-device linux-rasp-pi2-g++ -sysroot C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5
-device-option CROSS_COMPILE=C:/SysGCC/Raspberry/bin/arm-linux-gnueabihf- -qt-xcb
کامل وارد نکردید .
با سلام و تشکر برای راهنماییهای قبلی من در مرحله ۱۶ و پس از اینکه کانفیگ انجام شد با وارد کردن دستور make با خطاهای زیر روبرو شدم .چگونه میتونم این خطاها رو رفع کنم
from C:/Qt/qt-everywhere-opensource-src-5.6.1/qtbase/mkspecs/linux-arm-gnueabi-g++/qplatformdefs.h:34,
from C:/Qt/qt-everywhere-opensource-src-5.6.1/qtbase/src/corelib/arch/qatomic_unix.cpp:34:
c:\sysgcc\raspberry\arm-linux-gnueabihf\include\sys\wait.h:102:22: error: ‘__WAIT_STATUS’ was not declared in this scope
extern __pid_t wait (__WAIT_STATUS __stat_loc);
^
In file included from C:/Qt/qt-everywhere-opensource-src-5.6.1/qtbase/mkspecs/linux-arm-gnueabi-g++/../linux-g++/qplatformdefs.h:70:0,
from C:/Qt/qt-everywhere-opensource-src-5.6.1/qtbase/mkspecs/linux-arm-gnueabi-g++/qplatformdefs.h:34,
from C:/Qt/qt-everywhere-opensource-src-5.6.1/qtbase/src/corelib/arch/qatomic_unix.cpp:34:
c:\sysgcc\raspberry\arm-linux-gnueabihf\include\sys\wait.h:162:23: error: ‘__WAIT_STATUS’ was not declared in this scope
extern __pid_t wait3 (__WAIT_STATUS __stat_loc, int __options,
^
c:\sysgcc\raspberry\arm-linux-gnueabihf\include\sys\wait.h:162:49: error: expected primary-expression before ‘int’
extern __pid_t wait3 (__WAIT_STATUS __stat_loc, int __options,
^
c:\sysgcc\raspberry\arm-linux-gnueabihf\include\sys\wait.h:163:9: error: expected primary-expression before ‘struct’
struct rusage * __usage) __THROWNL;
^
c:\sysgcc\raspberry\arm-linux-gnueabihf\include\sys\wait.h:163:32: error: expression list treated as compound expression in initializer [-fpermissive]
struct rusage * __usage) __THROWNL;
^
In file included from c:\sysgcc\raspberry\arm-linux-gnueabihf\sysroot\usr\include\features.h:364:0,
from c:\sysgcc\raspberry\arm-linux-gnueabihf\sysroot\usr\include\stdlib.h:24,
from C:/Qt/qt-everywhere-opensource-src-5.6.1/qtbase/src/corelib/global/qt_pch.h:49:
c:\sysgcc\raspberry\arm-linux-gnueabihf\include\sys\wait.h:163:34: error: expected ‘,’ or ‘;’ before ‘throw’
struct rusage * __usage) __THROWNL;
^
make[3]: *** [.obj/qatomic_unix.obj] Error 1
make[3]: Leaving directory `/c/Qt/qt-build/qtbase/src/corelib’
make[2]: *** [sub-corelib-make_first] Error 2
make[2]: Leaving directory `/c/Qt/qt-build/qtbase/src’
make[1]: *** [sub-src-make_first] Error 2
make[1]: Leaving directory `/c/Qt/qt-build/qtbase’
make: *** [module-qtbase-make_first] Error 2
سلام خیلی پست خوبی بود!
منم دقیقا مثل آرین جان بعد از Make دچار همون خطا ها شدم که نمیدونم باید چیکار کنم
پیشاپیش از راهنمایی شما ممنونم
سلام،
دوست عزیز شما احتمالا در مرحله ۱۲ تغییرات را در فایل qplatformdefs.h به درستی انجام نداده اید ، مجددا تنظیمات را انجام دهید ، کلین کنید و از نو وارد مرحله کامپایل بشید.
با عرض سلام
جناب اقای طاهری من همچنان شدیدا منتظر پاسخ و راهنمایی شما هستم .
متشکرم.
دوستانی که موفق به کامپایل نشدید، بنده فایلهای آماده و کامپایل شده را دارم که فقط کافی است از مرحله ۱۹ به بعد انجام گیرد، در صورتی که امکانش باشم فایلها را بر روی سایت قرار می دهم که دوستان بتوانند دانلود کنند، حجم فایلها ۱٫۵۷ گیگا بایت است.
با عرض سلام و روز بخیر
خیلی لطف می کنید . این عالیه 🙂
سلام ،روز خوش
لطفا در صورت اپلود کردن فایلها لینک اونها رو اینجا قرار بدین .با تشکر فراوان
با سلام
ضمن تشکر از توجه شما، جناب آقای طاهری فایلها را آماده کردهاند. چون حجم بالاست منتظر اقدامات امنیتی سرور هستیم. به زودی در اختیار شما کاربران قرار خواهد گرفت.
سلام آقا حامد
ممنون از آموزش خوبتون
من تو مرحله ۱۳ زمانی که دستورات زیر رو اجرا میکنم
../qt-everywhere-opensource-src-5.6.1/configure -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2
-device linux-rasp-pi2-g++ -sysroot C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5
وسوالات را مطابق آموزش پاسخ میدم ارور
You cannot make a shadow build from a source tree containing a previous build
Cannot proceed.
را میده لطفا راهنمایی کنید چطور حلش کنم.
از دوستان کسی پاسخ سوال من رونمیدونه ؟
لطفا اکه کسی بلد جواب بده.
سلام دوست عزیز،
شما از قبل یک کامپایل نا موفق داشتید، برای شروع مجدد کامپایل ابتدا دستور make clean را اجرا کنید و مرحله کامپایل را از نو اجرا کنید.
با سلام و تشکر از مطلب مفیدتون
در مرحله ی ۲۰ من نتونستم این مسیر رو پیدا کنم
C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\usr\local\qt5
اصلا فولدری به نام qt5 تشکیل نشده
متشکرم اگر بنده را راهنمایی بفرمایید
حل شد
قبل از کانفیگ یه فولدر خودم با نام qt5 به اون مسیر اضافه کردم
سلامت باشید، در این خصوص پیام قبلی شما به نویسنده پست ارجاع داده شد. در زمان مقرر ایشان حتما پاسخ شما را خواهند داد.
سلام و ممنون از آموزش خوبتون
من تمام مراحل کراس کامپایل رو انجام دادم ولی وقتی مثال اجرا میکنم ارور زیر را میدهد لطفا راهنمایی کنید.
libEGL warning: DRI2: failed to authenticate
[۹;۰]EGL Error : Could not create the egl surface: error = 0x300b
لطفا منتظر باشید تا نویسنده پست در فرصت مناسب برای پاسخگویی حاضر شوند.
سلام ممنون آموزش خوبتون
بنده در مرحله ۲۰ به مشکل بر خوردم فایل qt5
در این ادرس ندارم C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\usr\local\qt5
ایا میشود مرا کمک کنید؟
یک سئوال دیگر قرار بود فایل های اماده شده را در سایت قرار بدهید این کار انجام شده است؟
سلام
ممنون از اموزش خوبتون
من چند بار این اموزش انجام دادم ولی به نتیجه نرسیدم
ایا شما فایلها را روی برسایت قرار نمیدهید؟
سلام و خسته نباشید
اول که خیلی عالی بود دمتون گرم
مهندس منم مثل بقیه منتظرم شما فایل را آپلود کنید ما هرکار میکنیم make باز هم ارور میده
با سلام و تشکر ازشما
متاسفانه هنوز امکان آپلود فایلها بر روی سرور وجود ندارد.
سلام… ببخشید من از همون ابتدا پکیج دستور زیر با خطا مواجه میشه و هرچه نیازمندیهایی رو که در انتهای خطا گفته نصب میکنم بازم خطا میده
sudo apt-get build-dep qt4-x11
خطا به این صورته
Reading package lists… Done
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
builddeps:qt4-x11 : Depends: libmysqlclient-dev but it is not installable
E: Unable to correct problems, you have held broken packages.
با سلام
جهت پاسخ به شما موارد به نویسنده ارجاع داده شده است. این موضوع ممکن است کمی زمانبر باشد.
این مرحله فقط یک نصب ساده پیکیج های Qt روی رزبری هست که می تونید روشهای مختلف نصب را از اینترنت پیدا کنید.