Mingw-w64 - Mingw-w64

MinGW-w64
Asl muallif (lar)OneVision dasturi
Tuzuvchi (lar)Kay Tits, Jonathan Yong, GNUning turli xil hissadorlari
Dastlabki chiqarilish2005; 15 yil oldin (2005)
Barqaror chiqish
8.0.0[1] / 2020 yil 18-sentyabr; 2 oy oldin (2020-09-18)
YozilganC, C ++
Operatsion tizimMicrosoft Windows, Linux, macOS
TuriTuzuvchi
LitsenziyaJamoat mulki (sarlavhalar), GNU umumiy jamoat litsenziyasi (kompilyator va asboblar zanjiri), Zope Public License
Veb-saytmingw-w64.org

Mingw-w64 a bepul va ochiq manba dasturiy ta'minotni ishlab chiqish yaratish uchun muhit Microsoft Windows Pe ilovalar. Bu 2005-2008 yillarda ishlab chiqarilgan MinGW (Windows uchun minimalist GNU).

Mingw-w64 tarkibiga a kiradi port ning GNU kompilyatori to'plami (GCC), GNU Binutils Windows uchun (montajchi, bog'lovchi, arxiv menejeri ), erkin tarqatiladigan Windows to'plami sarlavha fayllari va statik import kutubxonalari dan foydalanishni ta'minlaydigan Windows API, Windows-ning mahalliy versiyasi GNU loyihasi "s GNU tuzatuvchisi va turli xil kommunal xizmatlar.

Mingw-w64-ni mahalliy Microsoft Windows platformasida boshqarish mumkin Linux (yoki boshqa Unix) yoki "o'zaro faoliyat" MSYS2 yoki Kigvin. Mingw-w64 maqsad nomlari ostida x86 uchun 32 va 64 bitli bajariladigan fayllarni yaratishi mumkin i686-w64-mingw32 va x86_64-w64-mingw32.

Tarix

2005 yilda Mingw-w64 OneVision Software tomonidan yaratilgan toza xona dizayni printsiplari, chunki asl MinGW loyihasi kod bazasini yangilashni talab qilmagan, shu jumladan bir nechta asosiy yangi API-larni kiritish va juda zarur bo'lgan 64-bitli qo'llab-quvvatlash. 2008 yilda OneVision kodni ochiq manba bo'lib qolish sharti bilan uning etakchi ishlab chiquvchilaridan biri Kay Titsga sovg'a qildi.[2] Dastlab u MinGW-ning asl loyihasiga taqdim etilgan, ammo nodavlat yoki mulkiy ma'lumotlardan foydalanishda gumon qilinib rad etilgan.[3][4][5] Ko'pgina sabablarga ko'ra, MinGW-w64 loyihasining etakchi ishlab chiquvchisi va hammuassisi Kay Tits MinGW bilan keyingi hamkorlik qilishga urinmaslikka qaror qildi.[6]

MinGW-w64 to'liqroq Win32 API dasturini taqdim etadi,[7] shu jumladan:

Bundan tashqari, Mingw-w64 loyihasi winpthreads-ni saqlaydi, a o'ralgan kutubxona pthreads-win32 ga o'xshash, asosiy farqi shundaki, u GCC-dan uni ish zarralari kutubxonasi sifatida ishlatishga imkon beradi, natijada C ++ 11 ishchi kutubxonalari <thread>, <future>va <mutex>.

MSYS2

MSYS2 ("minimal tizim 2") - bu dasturiy ta'minotni tarqatish va ishlab chiqish platformasi Microsoft Windows, Mingw-w64 va asosida Kigvin, bu kodni tarqatishga yordam beradi Unix Windows-dagi dunyo.[8]

MSYS2 Windows-ning mashinalariga Unix kodini olib kelish maqsadi bilan bir qatorda boshqa loyihalar, xususan Kigvin va Linux uchun Windows quyi tizimi (WSL). WSL Linuxga ruxsat beradi ELF ikkilik fayllar Windows-da ishlaydi, yadro qo'ng'iroqlarini cheklangan qo'llab-quvvatlash va grafik dasturlarda sezilarli cheklovlar mavjud. Cygwin to'liq taqdim etadi POSIX atrof-muhit (deraza sifatida DLL ) Windows EXE sifatida tuzilgan dasturlar Unix ostida bo'lgani kabi ishlaydi.[9]

Cygwin kabi to'liq muhitni ta'minlash o'rniga, MSYS2 o'z oldiga rivojlanish va tarqatish platformasi vazifasini bajaradi.[10] MSYS2 3 ta muhitni o'rnatadi, ularning har biri alohida dasturlar va kutubxonalar to'plamiga ega. Ularning ikkitasi 32-bitli MinGW-w64 va 64-bitli MinGW-w64 deb nomlangan bo'lib, oddiygina mahalliy kompilyatorlardan iborat bo'lib, to'g'ridan-to'g'ri mahalliy Windows 32-bit yoki 64-bitli dasturlarni yaratish uchun ishlatilishi mumkin bo'lgan vositalar va kutubxonalarni yaratadi. Ikki mahalliy muhit bilan qurilgan yakuniy dasturlar har qanday taqliddan foydalanmaydi va mahalliy Windows dasturlari kabi ishlashi yoki tarqatilishi mumkin. O'rnatilgan uchinchi MSYS2 muhiti o'rniga Cygwin kabi taqlid qilingan POSIX muhitini paket menejeri va standart Unix tizim vositalari bilan ta'minlaydi. Shu tarzda MSYS2-ni o'zi boshqarayotganda standart Unix vositalarini taqlid qilingan muhit yordamida o'zgartirishsiz ishlatish mumkin. Shuningdek, foydalanuvchi mahalliy API o'rniga POSIX emulyatsiya qatlamiga bog'liq dastur yaratmoqchi bo'lsa, MSYS2 taqlid muhitida qurish vositalarini o'rnatish mumkin.

Asosiy MSYS2 muhiti a ni ta'minlaydi paket menejeri (Pacman dan Arch Linux ), a bosh qobig'i va boshqalar Unix dasturlar. Bu ish vaqti kutubxonasidan foydalanadi msys-2.0.dll Cygwin kutubxonasidan olingan (~ 20MB) cygwin1.dll, va Cygwin rivojlanishini kuzatib borish uchun muntazam ravishda yangilanadi. Bu ishlab chiquvchilar boshqarishi (pacman yordamida) va o'z vositalarini ishlatishi mumkin bo'lgan rivojlanish muhiti sifatida mo'ljallangan. Rivojlanish uchun keraksiz deb topilgan xususiyatlar o'chiriladi.[10]

Cygwin singari, MSYS2 undan ishga tushirilgan MSYS2 bo'lmagan dasturiy ta'minot uchun yo'l tarjimasini qo'llab-quvvatlaydi. Masalan, buyruqdan foydalanish mumkin notepad ++ /c/Users/John/file.txt faylni Windows yo'li bilan ochadigan muharrirni ishga tushirish C: Users John file.txt.[11][10]

MSYS2 va uning bosh muhiti tomonidan ishlatiladi Git va GNU oktavi Windows-ning rasmiy tarqatilishi uchun.

Tuzuvchi

GCC tomonidan qo'llab-quvvatlanadigan ko'pgina tillar Mingw-w64 portida ham qo'llab-quvvatlanadi. Ular orasida C, C ++, Maqsad-C, Objective-C ++, Fortran va Ada. GCC ish vaqti kutubxonalaridan foydalaniladi (C ++ uchun libstdc ++, Fortran uchun libgfortran va boshqalar). Qadoqlash LLVM mingw-w64-ga qo'shilish MSYS2 tomonidan ta'minlanadi. Windows uchun ARM-ni qo'llab-quvvatlaydi (aarch64-w64-mingw32 va armv7-w64-mingw32).[12][13]

Turli xil C ++ kompilyatorlari (masalan, Mingw-w64 GCC va Visual Studio kabi) bilan hosil qilingan ikkilik fayllar (bajariladigan fayllar yoki DLL) umuman boshqacha ABI va mangling nomlari C ++ ish vaqtidagi farqlardan kelib chiqqan sxemalar. Biroq, tuzilgan C kodi havola bilan mos keladi.[14] Clang - bu istisno, chunki u asosan Windows-da MSVC-ning C ++ ABI-ni qo'llab-quvvatlaydi.[15]

The binutil hujjatlar turli xil Windows formatlari va buning uchun maxsus vositalar bilan ishlash to'g'risida dolzarb ma'lumotlarga ega.[16][17]

Adabiyotlar

  1. ^ "V8.0.0-ni e'lon qilish". MinGW-w64 SourceForge pochta ro'yxatlari. Olingan 2020-11-26.
  2. ^ "(MinGW-w64) tarixi". MinGW-w64 Wiki. Olingan 2016-02-18.
  3. ^ Denni Smit (2007 yil 13-avgust). "Re: w64 header & crt uchun pastki loyiha". Yangiliklar guruhicomp.gnu.mingw.devel. Usenet:  000001c7dd83 $ 9ae74310 $ fe6d65da @ THOMAS. Olingan 23 iyul 2020. Bir nechta fayllarni tekshirib ko'rishda, ayniqsa, crt manbalari juda ko'p hujjatsiz materiallarni o'z ichiga oladi, menimcha ular mulkiy manbalardan olingan bo'lishi mumkin. O'shandan beri mualliflik huquqini suiiste'mol qilishdan saqlanish uchun mingw-w64 manbalariga qarashdan qochdim. Meni noto'g'ri qilishim mumkin edi, lekin mingw32 ning rivojlanish jarayonida "toza xona" etikasini saqlashga harakat qilgani uchun uning kelajagiga xavf tug'dirishdan ko'ra, xavfsizroq bo'lganim ma'qul.
  4. ^ "(MinGW-w64) tarixi". MinGW-w64 Wiki. Olingan 2016-02-18.
  5. ^ Marshall, Keyt (2009 yil 19-iyul). "Re: mingwrt / w32api-ni mingw-w64 bilan uyg'unlashtirish". MinGW-dvlpr (Pochta ro'yxati). Olingan 12 iyun 2014. Ammo, biz [mingw-w64 birlashishi] nihoyasiga yetguniga qadar manbalarning chindan ham ochiq hujjatlari uchun talablarimizga muvofiqligini ta'minlash uchun mingw-64 kodining rasmiy auditini talab qilamiz.
  6. ^ Tietz, Kai (2014 yil 20-iyul). "Re: mingwrt / w32api-ni mingw-w64 bilan uyg'unlashtirish". MinGW-dvlpr (Pochta ro'yxati). Olingan 12 iyun 2014.
  7. ^ "MinGW-w64". MinGW-w64.org. Olingan 30 may 2013.
  8. ^ MSYS2: rasmiy bosh sahifa, kod ombori
  9. ^ https://medium.com/@borekb/zsh-via-msys2-on-windows-3964a943b1ce
  10. ^ a b v https://github.com/msys2/msys2/wiki/How-does-MSYS2-differ-from-Cygwin
  11. ^ Misol umumiy maqoladan olingan https://www.booleanworld.com/get-unix-linux-en Environment-windows-msys2
  12. ^ "Paket: mingw-w64-x86_64-clang". MSYS2 to'plamlari. Olingan 12 fevral 2020.
  13. ^ Storsjo, Martin (2020 yil 23 aprel). "mstorsjo / llvm-mingw".
  14. ^ http://mingw.org/wiki/Interoperability_of_Libraries_Created_by_Different_Compiler_Brands
  15. ^ "MSVC muvofiqligi". Clang 11 hujjatlari.
  16. ^ "ld: win32". sourceware.org.
  17. ^ "GNU ikkilik yordam dasturlarining hujjatlari". sourceware.org.

Tashqi havolalar