نمایش نتایج 1 تا 34 از 34

نام تاپیک: نوشتن برنامه در ویندوز و اجرای ان در لینوکس

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    نقل قول: نوشتن برنامه در ویندوز و اجرای ان در لینوکس

    به شرط اینکه از استاندارد های ++C استفاده کنید توسط کامپایلرهای لینوکس مانند gcc قابل کامپایل خواهند بود، توجه کنیم که باید در همانجا دوباره کامپایل کنید چرا که فایل های باینری اجرایی دو سیستم عامل متفاوتند.

    به عنوان مثال در ++ISO C جدید (در کامپایلرهای جدید) به جای getch باید از getch_ استفاده کرد تا در کامپایلرهای مختلف در دسترس باشد.

  2. #2
    کاربر دائمی آواتار محمدامین شریفی
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران - شیراز
    پست
    1,302

    نقل قول: نوشتن برنامه در ویندوز و اجرای ان در لینوکس

    نقل قول نوشته شده توسط Nima_NF مشاهده تاپیک
    به شرط اینکه از استاندارد های ++C استفاده کنید توسط کامپایلرهای لینوکس مانند gcc قابل کامپایل خواهند بود، توجه کنیم که باید در همانجا دوباره کامپایل کنید چرا که فایل های باینری اجرایی دو سیستم عامل متفاوتند.

    به عنوان مثال در ++ISO C جدید (در کامپایلرهای جدید) به جای getch باید از getch_ استفاده کرد تا در کامپایلرهای مختلف در دسترس باشد.
    آیا کتابخانه های CLR ماکروسافت را در لینوکس هم میشود استفاده کرد؟
    آیا ++vc را میشود تو لینوکس استفاده کرد،یا باید از mono کمک گرفت؟

    با سپاس

  3. #3

    نقل قول: نوشتن برنامه در ویندوز و اجرای ان در لینوکس

    کتابخانه های CLR مایکروسافت در سایر سیستم عامل ها وجود دارد. اما نه دقیقا مانند نسخه مایکروسافت.

    ++VC برای ویندوز هست و سعی کنید فکر استفاده آن را در لینوکس نکنید(حتی اگر با پروژه هایی مثل wine یا mono هم بتوان اجرا کرد).
    در لینوکس شاید تنها راه همان Mono هست که کامپایلری هم برای #C ارائه کرده ولی برای ++C ارائه نکرده است.

    کلا C++‎/CLI در ویندوز دردسر ساز هست چه برسد به سایر سیستم عامل ها.
    کامپایلرهایی مثل gcc و LCC برای لینوکس (البته زبان C )برای پروژه mono وجود دارد، لیست کامپایلرها:
    http://mono-project.com/Languages

    اگر کسی به دنبال برنامه نویسی ++C و crossplatform هست بهتر هست دات نت را فراموش کند

  4. #4
    کاربر دائمی آواتار محمدامین شریفی
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران - شیراز
    پست
    1,302

    نقل قول: نوشتن برنامه در ویندوز و اجرای ان در لینوکس

    نقل قول نوشته شده توسط Nima_NF مشاهده تاپیک
    کتابخانه های CLR مایکروسافت در سایر سیستم عامل ها وجود دارد. اما نه دقیقا مانند نسخه مایکروسافت.
    یکم در این باره توضیح میدی

  5. #5

    نقل قول: نوشتن برنامه در ویندوز و اجرای ان در لینوکس

    اول اینکه CLR را با کل کتابخانه های .NET اشتباه نگیرید.این مطالب را قبلا توضیح داده بودم که ابتدا آن را مطالعه کنید که CLR و class library چه فرقی دارند:
    در مورد کد های مدیریت شده ، .Net Framework شامل دو جزء اصلی هست:
    1- common language runtime یا همان CLR
    .NET Framework class library - 2

    CLR بخشی هست که اعمالی مثل مدیریت حافظه ، اجرای کد ها و thread ها ، حفظ امنیت کدها و کامپایل آن ها و سایر سرویس های سیستمی را انجام می دهد.

    class library همان بخش اصلی .Net برای تولید نرم افزار ها با رابط گرافیکی کاربری (GUI) ، نوشتن برنامه های کنسول ، XML ، ASP.NET و غیره هست.

    وقتی گفته می شود کدهای مدیریت شده مستقل از پلتفرم هست یعنی اینکه هر جایی که CLR وجود داشته باشد امکان اجرای آن وجود دارد، به این شکل:
    ابتدا آن ها باید به زبان میانی مایکروسافت (MSIL) کامپایل شوند و سپس در هنگام اجرا از طریق کامپایلر JIT / just-in-time به کد های Native سیستمی ترجمه شوند که کدهایی مختص CPU هستند و از آنجایی که CLR از طریق کامپایلر JIT همه پردازنده ها را پشتیبانی و پیاده سازی کرده است پس می توانید برنامه هایی بنویسید که در همه کامپیوترها با ساختار معماری مختلف اجرا شود.

    اما این موضوع مهمی است که تا کنون درهمین حد تبلیغاتی باقی مانده است، چرا که اگر در کدهای مدیریت شده از API های Native سیستم عامل یا کتابخانه های مختص آن سیستم عامل استفاده کنید (از جمله class library .NET که چاره ای نیست و باید از آن ها استفاده کرد) لذا برنامه مدیریت شده فقط در همان سیستم عامل قابل اجرا شدن می باشد و تنها راهی که وجود دارد این است که همه شرکت ها یک لیسانس از مایکروسافت با هزینه های بسیار بالا برای کتابخانه های .Net دریافت کنند تا برنامه های نوشته شده در ویندوز که از همان class library استفاده کرده است بتواند در سایر کامپایلرها نیز اجرا و یا کامپایل شود که تا کنون شرکتی این کار را نکرده است و فقط برخی از شرکت ها به شبیه سازی آن اقدام کرده اند.

    توجه کنید که CLR و C#‎ استاندارد جهانی هستند و نیاز به خرید ندارند و هر کسی با دریافت استاندارد ها، می تواند کامپایلر آن را پیاده سازی کند ویا حتی زبان خود را نیز مبتنی بر CLR ارائه کند تا از قابلیت های دات نت بهره مند شود. پس بخش مشکل ساز، بخش class library می باشد که تا کنون مختص ویندوز بوده است.
    با توجه به مطالب فوق، با وجود اینکه CLR استاندراد است اما عملا به تنهایی برای ما بدون کارآیی است، وقتی بحث بر سر برنامه نویسی دات نت مثلا با #C یا ++C هست همه چیز در همان class library است که در اختیار مایکروسافت است.
    شما از طریق mono دقیقا همان CLR را در دسترس خواهید داشت چرا که بر اساس استاندارد ها است، خود زبان #C هم مانند CLR همین طور ISO است، اما کتابخانه های دات نت و زبان C++‎/CLI برای دات نت، خیر.
    mono آن موارد غیر استاندارد را بر اساس کلاس ها و قابلیت هایشان پیاده سازی می کند (به قولی شبیه سازی می کند) لذا همیشه نمی توان گفت آن ها دقیقا همان هستند و البته همیشه هم به آخرین نسخه دات نت نمی رسند.

    در مورد C++‎/CLI نیز بدتر، چون مایکروسافت هر چند سال ++C را تغییر می دهد و وصله ای مایکروسافتی (غیر استاندارد) به آن اضافه می کند تا نیازمندی های دات نت را تامین کند، ++C برای دات نت در سایر سیستم عامل ها پروژه امن، راحت و مطمئنی برای پیاده سازی نیست. چون ممکن است یکدفعه باز هم نظر مایکروسافت تغییر کند و همه چیز پیچیده شود.
    به خاطر همین موارد هست که در بحث دات نت نگاه همگان به سمت #C رفته است.

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •