PDA

View Full Version : اولین برنامه



ayub_coder
یک شنبه 18 تیر 1391, 19:54 عصر
با سلام خدمت دوستان
من یه ماشین حساب ساده با Qt که فقط چهار عمل اصلی رو انجام میده نوشتم
محیط کار من لینوکس Debian + دسکتاپ XFCE هست
حالا اگه اون فایل باینری رو ببرم تو یک لینوکس دیگه که روش Qt نصب نیست اجرا می شه؟ یا باید تو همون مقصد دوباره کامپایل شه؟

returnx
یک شنبه 18 تیر 1391, 20:56 عصر
من Qt رو در ویندوز کار می کنم ولی ،
نه ، بعید میدونم ، چون مهم هسته ی سیستم عامل هست و پس در نتیجه نیاز به Compile مجدد نباید داشته باشه....
در ضمن برای لینوکس کلا یکسری کتابخانه ارائه شده و برای توزیع های مختلف لینوکس فرقی نداره...
فقط تا اونجا که من می دونم کتابخانه هایی که ازش استفاده کردید رو باید همراه برنامه رو سیستم مقصد انتقال بدید مثل ، QtCore4 ، QtGui4 و...
ولی به طور مثال اگر بخواهید برنانمتون رو در سیستم عامل های دیگه مثل ویندوز و mac Os انتقال بدید باید دوباره در این محیط ها کامپایل کنید...

ayub_coder
یک شنبه 18 تیر 1391, 21:31 عصر
نمیشه کاری کرد نیاز به اون کتابخونه نباشه؟ فقط خود فایل تنها اجرا بشه؟

weox__
یک شنبه 18 تیر 1391, 23:56 عصر
کامپایل استاتیک برای لینوکس (http://www.qtcentre.org/wiki/index.php?title=Building_static_Qt_on_Linux)

حامد مصافی
دوشنبه 19 تیر 1391, 12:19 عصر
برنامه شما هنگام کامپایل به چند فایل so وابسته می شود که در ترمینال لینوکس یا فرمان ldd می توhنید لیست آنها را ببینید. اولین گروه که در هر سیستم عاملی وابسته به محیط وجود دارند، کتابخانه های محیطی سیستم عامل هستند. این کتابخانه ها از سکویی به سکوی دیگه فرق داره. برای مثال اگر شما در معماری i386 برنامه خودتون رو کامپایل کنید در ia64 کار نخواهد کرد. سری دیگر کتابخانه های کامپایلر هستند. مثل libgcc_s.so. سری سوم کتابخانه هایی که شما مستقیما در برنامه از آنها استفاده کردید. مثل libQtCore.so.4. قبلا در مورد تفاوت لینک داینامیک و استاتیک در همین فاروم توضیح داده شده به همین جهت دراین پست از آنها صرف نظر می کنم. اما علاوه بر اینها راه دیگه ای هم دارید. یک اینکه این کتابخانه ها را کنار فایل اجرایی خود قرار دهید و دوم اینکه کاربر را محبور به نصب آنها کنید. برای مثال در سیستم های مبتنی بر دبیان:

apt-get install libqt4-core libqt4-gui
...

ayub_coder
سه شنبه 20 تیر 1391, 18:16 عصر
پس این برنامه من برروی سیستم عامل دبیان که Qt هم روش نصبه بدون مشکل کار خواهد کرد درسته؟
پس اگر اینطور باشه باید چندین نسخه کامپایل شده از برنامه که با توزیع های مختلف کامپایل شده باید داشته بشم و بنا بر هر توضیع اون نسخه رو استفاده کنم درسته؟

kitten
سه شنبه 20 تیر 1391, 21:43 عصر
دوست عزیز شما باید از روی پروژتون واسه سیستم های دبیان بیس یا فایل .deb و برای ردهت بیس rpm درست کنید این طوری روی اکثر سیستم های لینوکس بعد از نصب درست کار می کنه.

https://www.google.com/search?q=how+to+create+.deb+file&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&channel=fflb