انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: راهنمایی در خصوص خروجی گرفتن بصورت برنامه اجرایی  (دفعات بازدید: 1160 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین saeidmot

  • Newbie
  • *
  • ارسال: 7
سلام. میخواستم برنامه ای در زبانهای c وبا C شارپ و یا پایتون بنویسم که خروجی آن اجرایی باشد و کد اصلی برنامه قابل خواندن نیاشد.لطفا راهنمایی کنید.

آفلاین َUxmlai-ad

  • Sr. Member
  • *
  • ارسال: 486
  • جنسیت : پسر
  • متنفر از گنو و FSF
خب هر چی رو که کامپایل کنید دیگه کد منبع رو نمی تونید بخونید مگر اینکه برنامه رو decompile کنید و خروجی برنامه کامپایل شده یک فایل اجرایی هست دیگه  ???
متنفر از گنو و FSF

آفلاین saeidmot

  • Newbie
  • *
  • ارسال: 7
چجوری  یک برنامه پایتون یا c# رو کامپایل کنم که خروجی ما بجای یک فایل exe یا py ، یک فابل deb باشه؟

آفلاین َUxmlai-ad

  • Sr. Member
  • *
  • ارسال: 486
  • جنسیت : پسر
  • متنفر از گنو و FSF
فایل های deb یک فایل اجرایی نیستن اونها یک فایل فشرده هستن بعد چرا فایل exe ؟
باید اول کامپایلش کنین بعد ازش یه فایل deb یا هر چیز دیگه‌ای بسازید
متنفر از گنو و FSF


آفلاین saeidmot

  • Newbie
  • *
  • ارسال: 7
فایل های deb یک فایل اجرایی نیستن اونها یک فایل فشرده هستن بعد چرا فایل exe ؟
باید اول کامپایلش کنین بعد ازش یه فایل deb یا هر چیز دیگه‌ای بسازید
از سوالهای ناشیانه ام عذرخواهم.وقتی یک فایل c++  رو توی اوبونتو کامپایل کردم 2 تا فایل جدید ایجاد شد که یکی بدون پسوند وبه شکل چرخ دنده بود و دیگری با پسوند o بود. چجوری باید ازش یک فایل اجرایی مشابه فایلهای exe در ویندوز بسلزم.

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
اون فایل بدون پسوند فایل احرایی شماست.

آفلاین saeidmot

  • Newbie
  • *
  • ارسال: 7
اون فایل بدون پسوند فایل احرایی شماست.
بله جواب داد. با پایتون هم میشه همینکار رو کرد؟ آخه پایتون فقط یک فایل py  داره.متشکرم

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
همون پروندهٔ py پروندهٔ اجرایی شماست
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین saeidmot

  • Newbie
  • *
  • ارسال: 7
همون پروندهٔ py پروندهٔ اجرایی شماست
آخه میخوام نشه کدهایی که نوشتم رو خوند و فقط اجرا بشه. ولی کدهای فایل py رو توی یه editor میشه دید.

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
آخه میخوام نشه کدهایی که نوشتم رو خوند و فقط اجرا بشه. ولی کدهای فایل py رو توی یه editor میشه دید.
فکر کنم اگه بگی مقصودت چیه که راه‌حلش به نظرت قابل خوندن نبودن فایل بوده، بهتر می‌شه کمکت کرد.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین saeidmot

  • Newbie
  • *
  • ارسال: 7
آخه میخوام نشه کدهایی که نوشتم رو خوند و فقط اجرا بشه. ولی کدهای فایل py رو توی یه editor میشه دید.
فکر کنم اگه بگی مقصودت چیه که راه‌حلش به نظرت قابل خوندن نبودن فایل بوده، بهتر می‌شه کمکت کرد.
میخوام برنامه ام خروجی ای داشته باشه که فقط قابلیت اجرا داشته باشه و نشه کدی که من نوشتم رو ببینند.

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
متن برنامه‌های C با ابراز کامپایلر به دستورات قابل فهم رایانه تبدیل می‌شوند.

مجموعهٔ کامپایلر gcc فایل باینری قابل اجرا روی سیستم را هم تولید می‌کند.
gcc code.c -o code

برنامهٔ gcc تمام کارهای لازم را برای تبدیل کد C به یک فایل باینری قابل اجرا روی همین سیستم انجام می‌دهد.
برنامه را در محیط پوسته با این فرمان اجرا می‌کنید.
./code

اما برنامه‌های پایتون متفاوت هستند و برای اجرا روی سیستم نیاز به مفسر دارند.
python3 prog.py
به نظر می‌رسد شما می‌خواهید از برنامهٔ پایتون یک فایل اجرایی باینری مستقل مشابه مثال در مورد C بسازید.

برای ساخت یک فایل اجرایی مستقل از برنامهٔ پایتون یک راه استفاده از بستهٔ pyinstaller است.


نمونه


نوشتن برنامه
echo "print('salam')">prog.py
cat prog.py

ساخت venv و فعال سازی
python3 -m venv env
source env/bin/activate

نصب بستهٔ pyinstaller با pip در محیط مجازی
python3 -m pip install pyinstaller
اجرای برنامهٔ pyinstaller  برای ساخت فایل اجرای از روی برنامهٔ پایتون
pyinstaller --onefile prog.py

اجرای برنامه
./dist/prog

آفلاین saeidmot

  • Newbie
  • *
  • ارسال: 7
تشکر از راهنماببتون

آفلاین مجتبی باغبان

  • Hero Member
  • *
  • ارسال: 780
  • جنسیت : پسر
زبانهایی مثل پایتون و php زبانهای مفسری هستند و فایل اجرایی به اون معنی بهتون نمیده بلکه مفسر در زمان اجرا فایل ورودی رو تفسیر می‌کنه و این بر خلاف زبانهای کامپایلی مثل سی است که کامپایل میشه و فایل اجرایی بهتون میده و واسه اجرا نیاز به مفسر نداره. هر کدوم از این روشها مزایا و معایب خودشون رو دارن. توی زبانهای مفسری مثل پایتون نیاز است که فایل اصلی باشه که مفسر بتونه اجراش کنه. هرچند روشهای واسه رمزگذاری کردن اسکریپت‌های زبان های تفسیری وجود داره.