Rust: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ msvc Π² windows, Π° Π½Π΅ mingw

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 6 Ρ„Π΅Π²Ρ€. 2012  Β·  10ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: rust-lang/rust

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ довольно Ρ€Π΅Π΄ΠΊΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ инструмСнтов для Windows. Msvc являСтся «стандартным», ΠΈ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ссли Π±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ rustc, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠ΄ΠΎΠ±Π΅Π½ с Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструмСнтов Windows, Π° Π½Π΅ с mingw.

A-driver A-linkage O-windows

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ случайноС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ mingw - это «довольно рСдкая Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° инструмСнтов для WindowsΒ».

Π€Π°ΠΊΡ‚Ρ‹:
Equation.com ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ инструмСнтов mingw для Scilab
mingw-w64 вносит измСнСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ
google go ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с mingw
ReactOS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ срСду mingw
многочислСнныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ FOSS ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ mingw

Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ нСдСйствитСлСн. Π’ ΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Mingw ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ, Π° Ρ€ΠΆΠ°Π²Ρ‡ΠΈΠ½Π° - Π½Π΅Ρ‚. Однако mingw Π΄Π°Π΅Ρ‚ ΠΌΠ½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€ΠΆΠ°Π²Ρ‡ΠΈΠ½Ρƒ ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π΅ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Π’ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Mozilla ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Visual Studio, Π½Π΅ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ VS ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ являСтся СдинствСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ. Π₯Ρ€ΠΎΠΌ - ΠΊΠΎΠ½Ρ‚Ρ€ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ взаимодСйствия mingw с VS - это Ρ‚ΠΎΠΆΠ΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я Π»ΠΈΡ‡Π½ΠΎ Π½Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽ большой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.

Mingw совмСстим со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ языками сцСнариСв, ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ языками, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ FreePascal / Mono / D ΠΈ Go. Π’ связи с этим я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ вас ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ mingw вмСстС с VS ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ mingw ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ clang + mingw.

ВсС 10 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°, Ссли Ρ€ΠΆΠ°Π²Ρ‡ΠΈΠ½Π° Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ позволяСт ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с ΠΊΠΎΠ΄ΠΎΠΌ C (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β„– 1850). Π₯отя тСорСтичСски ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° MinGW C являСтся ABI-совмСстимой с MSVC, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это Π½Π΅ Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ сбою Ρ‚ΠΎΠ½ΠΊΠΈΠΌΠΈ ΠΈ Π·Π°Π³Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΌΠΈ способами, особСнно ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ увСличСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄Π°. Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ список ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Π½ΠΎ я Ρ…ΠΎΡ‚Π΅Π» ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ мСня Π±Ρ‹Π»ΠΈ с взаимодСйствиСм MinGW / MSVC.

  • MinGW ΠΈ MSVC фактичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΠΊΡ€Π°ΡˆΠ΅Π½ΠΈΡ символов для Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ использования stdcall / dllimport, трСбуя измСнСния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² (ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ² компилятору), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°ΠΆΠ΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ связываниС.
  • БвязываниС статичСского .lib, созданного с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MSVC, с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, созданными MinGW с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ld.exe, Ρ€Π΅Π΄ΠΊΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π΄Π°ΠΆΠ΅ Π² соотвСтствии с ΠΈΡ… собствСнной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ. По ΠΌΠΎΠ΅ΠΌΡƒ Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΎΠΏΡ‹Ρ‚Ρƒ, ld.exe ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. ИспользованиС Rustc link.exe (MSVC) Π² Windows Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ шагом Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ VC ++.
  • Π‘ DLL Π»ΡƒΡ‡ΡˆΠ΅, Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ Π±Π°Ρ€Π΄Π°ΠΊ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Ρ€Π΅Π΄ΠΊΠΎ «просто Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚Β», ΠΈ Π²Π°ΠΌ придСтся ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ / Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .def ΠΈΠ»ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с .dll; ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ² час Π½Π° возню с Ρ‚Π°ΠΊΠΈΠΌΠΈ Π²Π΅Ρ‰Π°ΠΌΠΈ, ΠΊΠ°ΠΊ reimp.exe ΠΈ Ρ„Π»Π°Π³ --out-implib, Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ вопросом, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ MinGW, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого.
  • Π”Π°ΠΆΠ΅ Ссли Π²Π°ΠΌ удастся ΡΠ²ΡΠ·Π°Ρ‚ΡŒ DLL, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL MinGW ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с msvcrt.dll ΠΈ VC ++ 10 ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с msvcr100.dll, вызывая Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ ошибки, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π³Ρ€Π°Π½ΠΈΡ†Ρƒ DLL ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ с Ρ€Π°Π·Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния. Π­Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Linux, скомпилированных для Windows Ρ‡Π΅Ρ€Π΅Π· MinGW. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ GTK +, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ компилятора VC ++ 6 ΠΈΠ»ΠΈ MinGW для компиляции ΠΊΠΎΠ΄Π°, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ с Π½ΠΈΠΌ, ΠΈ Qt ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ дистрибутивы для MinGW ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий MSVC.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, эта послСдняя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° относится ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ, скомпилированному с нСсовмСстимой вСрсиСй компилятора (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, VS2005 / VS2010), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ mingw связываСтся с Ρ‚Π°ΠΊΠΎΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ вСрсиСй MSVC, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° бСсполСзна для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ сСгодня. Π― Π²ΠΈΠ΄Π΅Π» Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π² спискС рассылки MinGW ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с msvcr100.dll, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ скоро ΠΈΡΡ‡Π΅Π·Π½ΡƒΡ‚ΡŒ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ считаСтся, Ρ‡Ρ‚ΠΎ использованиС статичСских / ΠΎΠ±Ρ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, созданных с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ MS с ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ MinGWs, Π³Π΄Π΅-Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ мноТСством Ρ…Π»ΠΎΠΏΠΎΡ‚ ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° Π±Ρ‹ устранСна, Ссли Π±Ρ‹ компиляция ΠΊΠΎΠ΄Π° .c (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, # 1850) Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MSVC, Π° Π·Π°Ρ‚Π΅ΠΌ Π±Ρ‹Π»Π° связана с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ rustc, созданными с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ llvm.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρƒ мСня ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с llvm, поэтому я Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, насколько ABI LLVM (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€ΠΆΠ°Π²Ρ‡ΠΈΠ½Ρ‹) совмСстим с MSVC. Π― знаю, Ρ‡Ρ‚ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ компилятор Intel (icc) ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ .lib / .def / .dll, созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MSVC. Если llvm Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ совмСстим, ΠΊΠ°ΠΊ icc, с cl.exe / link.exe, Ρ‚ΠΎΠ³Π΄Π° rustc унаслСдуСт эти прСимущСства.

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ случайноС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ mingw - это «довольно рСдкая Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° инструмСнтов для WindowsΒ».

Π€Π°ΠΊΡ‚Ρ‹:
Equation.com ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ инструмСнтов mingw для Scilab
mingw-w64 вносит измСнСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ
google go ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с mingw
ReactOS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ срСду mingw
многочислСнныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ FOSS ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ mingw

Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ нСдСйствитСлСн. Π’ ΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Mingw ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ, Π° Ρ€ΠΆΠ°Π²Ρ‡ΠΈΠ½Π° - Π½Π΅Ρ‚. Однако mingw Π΄Π°Π΅Ρ‚ ΠΌΠ½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€ΠΆΠ°Π²Ρ‡ΠΈΠ½Ρƒ ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π΅ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Π’ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Mozilla ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Visual Studio, Π½Π΅ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ VS ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ являСтся СдинствСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ. Π₯Ρ€ΠΎΠΌ - ΠΊΠΎΠ½Ρ‚Ρ€ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ взаимодСйствия mingw с VS - это Ρ‚ΠΎΠΆΠ΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я Π»ΠΈΡ‡Π½ΠΎ Π½Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽ большой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.

Mingw совмСстим со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ языками сцСнариСв, ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ языками, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ FreePascal / Mono / D ΠΈ Go. Π’ связи с этим я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ вас ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ mingw вмСстС с VS ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ mingw ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ clang + mingw.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: jemalloc Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ mingw.

Firefox ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ jemalloc Π² Windows с MSVC: http://glandium.org/blog/?p=2581

jemalloc ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ MSVC, Π½ΠΎ я Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π·Π°ΠΌΠ΅Π½Ρ‹ malloc / free для всСго процСсса. Π― Π΄ΡƒΠΌΠ°ΡŽ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с прСфиксом je_ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π½Π° Π½Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ потСряли ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ LLVM для malloc / free, Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ.

@thestinger Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ Ρ‚Π°ΠΊ ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½, ΠΊΠ°ΠΊ каТСтся. Π•ΡΡ‚ΡŒ просто список Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ нСкоторая информация ΠΎ Π½ΠΈΡ… Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ LLVM Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ для вСрсий с прСфиксом je_ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

@Aatch : это большС, Ρ‡Π΅ΠΌ просто это - Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, связанныС с free ΠΈ malloc

http://llvm.org/docs/doxygen/html/InstructionCombining_8cpp_source.html#l01378
http://llvm.org/docs/doxygen/html/Local_8cpp_source.html#l00269

посСщСниС для выявлСния ошибок, элСктронноС письмо ΠΎΡ‚ 5 августа 2013 Π³.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ c99, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ fdim Π½ΠΎ ΠΈΡ… Π½Π΅Ρ‚ Π² срСдС выполнСния msvcrt. # 8663 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ mingw / mingw-w64 Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΈΡ… Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, поэтому для msvc ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ….

9367 - Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ сильно привязаны ΠΊ LLVM ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ инструмСнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°ΡˆΠΈΡ… снимков ΠΈ установщика. Они стрСмятся Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимыми с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструмСнтов MSVC ++.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ