کامپایل کدهای نوشته شده برای لینوکس در ویندوز
خیلی از نرم افزارهای کوچک و بزرگ در محیط های دانشگاهی خصوصا آمریکا تحت لینوکس و به زبان C نوشته میشوند. کامپایل کردن این برنامه ها تحت ویندوز بدلیل اینکه از توابع مختص unix و posix استفاده میکنند بسیار دشوار است. در این نوشته راههایی را برای اجرای این گونه برنامه ها تحت ویندوز بیان میکنم:
0 - pre-Compiled Binary Release
در سایت هایی مثل github در قسمت Release ببینید شاید نسخه از قبل کامپایل شده برای ویندوز وجود داشته باشد.
1- wmware workstation
به کمک این virtual machine یک لینوکس مثلا اوبونتو روی ویندوز خود نصب میکنید و برنامه ها را اساسا در محیط لینوکس اجرا میکنید. wmware دو سیستم عامل را به صورت یکپارچه و پنجره ها را کنار هم نمایش میدهد و بین پنجره ها میتوانید فایل یا متن copy paste کنید و تمام امکانات از قبیل شبکه و usb و ... در هر دو سیستم عامل همزمان وجود خواهد داشت.
2 - Cygwin
اگر به هر صورت خواستید کد برنامه را روی ویندوز کامپایل کنید cygwin setup را با نصب از سایت cygwin یا از اینجا cygwin archive دریافت میکنید. package های ضروری مثل gcc و automake و ... را انتخاب و نصب میکنید. Cygwin یک محیط ترمینال لینوکس به شما میدهد که که میتوانید در آنجا به پوشه برنامه خود رفته دستورات کامپایل و نصب را مشابه ترمینال لینوکس دنبال کنید مثلا
cd C:
cd your_folder
./configure --static
make
make install
اگر خطایی رخ دهد مثلا به صورت unknown command missing fxyz به خاطر نصب نبودن ماژول مثلا fxyz هست در این صورت cygwin setup را اجرا کرده مثلا fxyz را در لیست package ها جستجو کرده و package مذکور را اضافه کنید. سپس باید دوباره برنامه خود را ./configure و make کنید. در نهایت یک فایل exe خواهید داشت که البته باید cygwin1.dll و ... هم همراهش باشد تا روی ویندوز اجرا شود.
3- Microsoft Visual C++ IDE ، Code Block IDE ، NetBeans IDE
اگرچه محیط های برنامه نویسی برای ویرایش کد ها خیلی خوب اند ولی اگر کدی که در محیط لینوکس نوشته شده را بخواهید در محیط دیگری در ویندوز کامپایل کنید گرفتار کلاف سردرگمی از خطاهای عجیب و غریب خواهید شد ، چرا که توابع و هدر ها و کتابخانه ها و استانداردهای زبان C و OS ها به مرور زمان تغییر کرده و کامپایل کردن یک کد در یک محیط در محیط دیگر تقریبا غیر ممکن است. بنابراین بهتر است قسمت instruction و readme برنامه را بخوانید تا ببینید در چه محیطی نوشته شده همچنین مثلا اگر در فایلهای پوشه root فایلهایی با پسوند .sln و .dsw و .dsp موجود بود یعنی پروژه قبلا با Microsoft Visual Studio نوشته شده بنابراین میتوانید در آن محیط با کمی تلاش آن را کامپایل کنید.