Bagaimana cara memprogram untuk Windows di Ubuntu?

24

Apakah ada cara untuk membuat (C ++ atau C #) aplikasi konsol Windows di dalam IDE Ubuntu (mis. Anjuta) dan mengkompilasinya untuk Windows?

Behzadsh
sumber
1
mingw adalah pilihan yang jelas untuk kompilasi silang, tetapi saya tidak tahu bagaimana mengintegrasikannya dengan Anjunta. Saya memang melihat tutorial tentang mengintegrasikan mingw dan kdevelop di sini: forums.gentoo.org/viewtopic-t-292180.html mungkin salah satu dari orang-orang yang merekomendasikan mingw mengetahui integrasi dengan tutorial Anjunta?
RobotHumans

Jawaban:

21

Anda ingin melakukan cross-compiling, yang merupakan cara untuk mengkompilasi kode untuk platform selain yang Anda aktifkan, terutama ketika prosesornya benar-benar berbeda. Pada dasarnya Anda perlu menginstal semua header untuk target Anda (yaitu windows) dan kemudian memberitahu kompiler itu kompilasi silang sehingga tidak akan melakukan beberapa pemeriksaan sistem dan sebagai gantinya akan menunjuk ke direktori non-standar.

Bergantung pada bahasa yang Anda temukan berguna untuk melakukan pencarian atau pertanyaan secara khusus, atau jika Anda melakukan hal-hal dasar, Anda dapat menggunakan alat MinGW dan jenis alat kompilasi berbasis linux yang sama yang menggunakan gcc:

sudo apt-get install gcc-mingw32

Ada panduan yang bagus untuk kompilasi silang qt / win32 menggunakan alat MinGW .

Martin Owens -doctormo-
sumber
12

Anda harus melihat MingW . Ini menyediakan kompiler yang kompatibel dengan gcc untuk windows.

Ada versi lintas platform yang dapat Anda gunakan dari Linux, untuk menghasilkan binari Windows. Anda dapat menginstalnya dengan sinaptik, atau dengan menjalankan:

sudo apt-get install gcc-mingw32

Berdasarkan itu, dan dengan menggunakan perintah 'make' yang biasa, Anda dapat membuat program untuk windows.

Maka setiap IDE yang memungkinkan Anda untuk menggunakan make dan gcc dapat menggunakan kompiler ini. Sebagai contoh, berikut adalah cara melakukannya dari Code :: Blocks IDE .

Jawa kecil
sumber
cukup bagus untuk saya +1
RobotHumans
7

Jawaban lainnya benar untuk kode C / C ++; Anda harus mendapatkan cross-compiler.

Untuk kode C #, Anda bisa menggunakan Monodevelop Instal Monodevelop , karena compiler Mono menghasilkan tipe bytecode yang sama dan format yang dapat dieksekusi sebagai compiler .NET (dan sebaliknya visa). Aplikasi yang Anda buat dengan Mono akan berjalan tanpa dimodifikasi pada mesin Windows selama Anda tetap berada di dalam perpustakaan .NET Base Class library standar atau bundel setiap perpustakaan tambahan yang Anda gunakan dengan aplikasi Anda.

RAOF
sumber
5

Mungkin ingin mencoba Qt dengan Qt Creator. Kerangka kerja yang bagus untuk aplikasi GUI dan Konsol Anda dapat mengompilasinya untuk Windows, Linux dan OS X.

http://qt.nokia.com/

SiliconChaos
sumber
2

Cara paling umum untuk memprogram aplikasi windows linux (ubuntu) adalah menggunakan alat mingw:

http://www.mingw.org/

Ada paket ubuntu untuk mingw yang siap diinstal.

lelucon
sumber
2

Dari halaman ini :

sudo apt-get install wine mingw32 mingw32-binutils mingw32-runtime

Ini semua yang diperlukan untuk kompilasi silang dasar. Mari mencoba:

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
  MessageBox(NULL,
    "Cette fenĂȘtre prouve que le cross-compilateur est fonctionnel !",
    "Hello World", MB_OK);
  return 0;
}

Kompilasi ini menggunakan:

i586-mingw32msvc-g++ -o essai.exe essai.cpp

Untuk mengeksekusi, Anda memerlukan perpustakaan mingw: mingwm10.dll:

gunzip -c /usr/share/doc/mingw32-runtime/mingwm10.dll.gz > mingwm10.dll

Kemudian Anda dapat meluncurkannya:

wine essai.exe

Teks kotak dialog dalam bahasa Prancis dengan aksen, untuk melakukannya dengan gvim, konversikan sumber ke kode windows halaman 1252 :<ESC>:e ++enc=cp1252

Solusi lain, yang lebih kuat adalah menggunakan UTF-8 tetapi ini membutuhkan perubahan cara penanganan string.

Aubin
sumber