mingw boleh dijalankan pada linux. MinGW ialah koleksi fail pengepala khusus Windows dan perpustakaan import yang tersedia secara percuma dan boleh diedarkan secara bebas menggunakan set alat GNU, yang membolehkan pengguna menjana program Windows asli pada platform GNU/Linux tanpa memerlukan masa jalan C pihak ketiga (C Runtime). ) perpustakaan.
Persekitaran pengendalian tutorial ini: sistem linux7.3, mingw-w64, komputer Dell G3.
Apakah mingw?
MinGW ialah singkatan kepada Minimalist GNU for Windows. Ia ialah koleksi fail pengepala khusus Windows yang boleh didapati secara percuma dan boleh diedarkan secara bebas serta perpustakaan import menggunakan set alat GNU, membolehkan anda menjana program Windows asli pada platform GNU/Linux dan Windows tanpa memerlukan masa jalan C pihak ketiga (C Runtime). ) perpustakaan.
MinGW ialah satu set fail dan perpustakaan port yang membenarkan atur cara mod konsol menggunakan perpustakaan C Runtime (MSVCRT.DLL) standard Microsoft, yang tersedia pada semua OS NT Ia sah pada semua OS Windows di atas Keluaran Windows 95 Menggunakan masa jalan asas, anda boleh menggunakan GCC untuk menulis program Organisasi Standard Amerika (ANSI) yang mematuhi mod konsol Anda boleh menggunakan sambungan C Runtime yang disediakan oleh Microsoft, digabungkan dengan masa jalanan asas, anda boleh mempunyai hak penuh untuk menggunakan kedua-dua fungsi CRT (C Runtime) dan Windows API.
Bolehkah mingw berjalan di Linux?
Bolehkah mingw berjalan di Linux. Mengambil siri Debian sebagai contoh, anda boleh menanyakan pakej pemasangan MinGW melalui kaedah berikut dan memasangnya mengikut keperluan.
1. Tanya perpustakaan masa jalan mingw
2. 🎜 >3. Tanya pakej binaan mingw
4. Pilih pakej yang sesuai untuk platform perkakasan anda untuk dipasang
Gunakan MinGW untuk menyusun silang libcurl secara statik dengan zlib di bawah Linux
libcurl ialah pustaka rangkaian merentas platform, mudah digunakan dan berkuasa. Pakej binari yang disusun tersedia dalam kebanyakan pengedaran Linux, dan sistem Mac menggunakannya sebagai komponen teras. Tetapi pada platform Windows, kompilasi manual diperlukan, apatah lagi bahawa sesetengah orang yang mempunyai mysophobia khas (seperti saya) sangat membenci DLL tambahan dan perlu memautkannya secara statik. Artikel ini ialah ringkasan kecil pengalaman dua malam saya melambung, menerangkan cara menggunakan MinGW untuk menyusun perpustakaan statik libcurl untuk Windows di bawah Linux. LANGKAH1 Pasang pengkompil MinGW
Saya tidak akan menerangkan secara terperinci tentang langkah ini Kebanyakan pengedaran Linux sepatutnya mempunyainya dalam gudang mereka , laksanakan :sudah memadai. Jika anda tidak memerlukan kompilasi silang dan ingin menyusun terus pada Windows, sila pergi ke SourceForge untuk memuat turun versi Windows. Jangan risau sama ada
itu adalah versi 64-bit, ia boleh menyusun atur cara 32-bit dan 64-bit. Mari kita ambil versi saya sebagai contoh:~# pacman -S mingw-w64
ialah 32-bit, dan program yang disusun dengan w64
ialah 64-bit. . Sekarang, tulis sahaja Hello World (anda boleh menggunakan kod Hello World saya ^_^), dan kemudian cuba untuk menyusunnya:
~# pacman -Ql mingw-w64-gcc| grep '/usr/bin/.*gcc$' mingw-w64-gcc /usr/bin/i686-w64-mingw32-gcc mingw-w64-gcc /usr/bin/x86_64-w64-mingw32-gcc
Bawa ia ke mesin maya atau buang ke dalam Wine, jika ia berfungsi seperti biasa Run, kemudian tahniah, langkah pertama selesai. i686-w64-mingw32-gcc
x86_64-w64-mingw32-gcc
i686-w64-mingw32-gcc hello_world.c -o hello_world.exe
LANGKAH2 Muat turun kod sumber
LibCurl: Arkib Sumber teratas
zLib: Sila muat turun Kod Sumber
curl-7.35.0
LANGKAH3 Susun kod sumberzlib-1.2.8
openssl-1.0.1f
di bawah folder dan tukar baris kepada awalan gcc dalam STEP1 Untuk Bagi saya ia
. Salin fail ini ke folder, kemudian zlib/win32
di bawah folder Makefile.gcc
dan anda sepatutnya dapat melihat fail PREFIX =
. PREFIX = i686-w64-mingw32-
zlib
Jika anda ingin menyusun OpenSSL, kemudian pergi ke folder openssl zlib
make -f Makefile.gcc
libz.a
dan ingat untuk menukar awalan. Hasilkan
最后去libcurl里的lib文件夹里修改Makefile.m32
文件,在CC = $(CROSSPREFIX)gcc
上加一行CROSSPREFIX=i686-w64-mingw32-
(请按需修改),然后把下面CFLAGS
那行改成这样CFLAGS = -g -O2 -Wall -DCURL_DISABLE_LDAP
,最后
make -f Makefile.m32 CFG=-zlib
或是
make -f Makefile.m32 CFG=-zlib-ssl
make到最后时会报个错,是因为文件没放对地方,手动挪一下即可
for x in vtls/openssl.o vtls/gtls.o vtls/vtls.o vtls/nss.o vtls/qssl.o vtls/polarssl.o vtls/polarssl_threadlock.o vtls/axtls.o vtls/cyassl.o vtls/curl_schannel.o vtls/curl_darwinssl.o vtls/gskit.o do mv `basename $x` vtls done
然后再make一下,libcurl.a
文件应该就出现了。
如果生成dll出错也不要紧,我们要的是.a
文件
STEP4 测试
现在,你可以找一段libcurl的demo来测试了。注意要加上宏定义CURL_STATICLIB
i686-w64-mingw32-gcc -I. -L. -DCURL_STATICLIB curl_demo.c -lcurl -lz -lws2_32 -o curl_demo.exe
如果你因为不知道gcc-I
和-L
选项的用法而编译不过,请自行Google。如果你加了ssl支持,你需要链接更多的库,具体请根据错误信息自行Google。
最后提醒一点:请把-lcurl选项放在源文件后面,我当初就是因为这个死活链接不过。最后把curl_demo.exe拖进虚拟机里,如果一切正常,那么恭喜你,你成功了。
相关推荐:《Linux视频教程》
Atas ialah kandungan terperinci Bolehkah mingw berjalan di linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!