설치가 가능한가요?오직 x86_64-w64-mingw32-gcc
? 명령을 실행하는 데 필요하고 mingw-w64
설치 공간이 800MB가 넘습니다... 저는 Debian Buster를 사용하고 있지만 방금 시도한 다른 Linux 버전에서도 마찬가지입니다.
$ sudo apt-get install mingw-w64 -V --no-install-recommends
...
The following NEW packages will be installed:
binutils-mingw-w64-i686 (2.31.1-11+8.3)
binutils-mingw-w64-x86-64 (2.31.1-11+8.3)
g++-mingw-w64 (8.3.0-6+21.3~deb10u1)
g++-mingw-w64-i686 (8.3.0-6+21.3~deb10u1)
g++-mingw-w64-x86-64 (8.3.0-6+21.3~deb10u1)
gcc-mingw-w64 (8.3.0-6+21.3~deb10u1)
gcc-mingw-w64-base (8.3.0-6+21.3~deb10u1)
gcc-mingw-w64-i686 (8.3.0-6+21.3~deb10u1)
gcc-mingw-w64-x86-64 (8.3.0-6+21.3~deb10u1)
mingw-w64 (6.0.0-3)
mingw-w64-common (6.0.0-3)
mingw-w64-i686-dev (6.0.0-3)
mingw-w64-x86-64-dev (6.0.0-3)
0 upgraded, 13 newly installed, 0 to remove and 2 not upgraded.
Need to get 137 MB of archives.
After this operation, 809 MB of additional disk space will be used.
Do you want to continue? [Y/n]
답변1
이 Mingw-w64 패키지가 왜 그렇게 큰가요?
왜냐하면mingw-w64
MinGW-w64 툴체인에 대해 지원되는 모든 대상에 대해 C 및 C++ 컴파일러를 제공하는 메타패키지입니다. 현재 여기에는 4개의 서로 다른 백엔드(POSIX 및 Windows 스레딩 모델과 결합된 32비트 및 64비트)가 포함됩니다.
모두 필요하지 않은 경우 apt
관심 있는 컴파일러만 설치하도록 요청할 수 있으며 결국에는 더 작은 패키지 세트가 생성됩니다.
apt install gcc-mingw-w64-x86-64
이렇게 하면 64비트 툴체인이 설치되지만 g++
여전히 약 300MiB입니다.
다음 버전의 Debian(및 Ubuntu 20.04)은 더 세부적인 세분화를 제공하므로 스레딩 모델 중 하나만 지정할 수 있습니다.
apt install gcc-mingw-w64-x86-64-posix
답변2
예, 전체 제품군이 필요하지 않은 경우 특정 부분만 설치하도록 선택할 수 있습니다. 설치하면 gcc-mingw-w64
C에 필요한 모든 것이 제공되지만 C++에 대한 지원은 포함되지 않습니다. 이것이 당신에게 잘 맞을 수도 있습니다.
덜 도입하고 싶다면 gcc-mingw-w64-x86-64
x86-64 아키텍처에 대해서만 컴파일할 수 있도록 도입하면 됩니다. 그러면 i686 지원이 제외됩니다. Debian Bullseye 이상에서만 posix-thread를 사용하여 컴파일하려고 하면 이를 gcc-mingw-w64-i686-posix
.
으로 지정하더라도 , 및 패키지는 gcc-mingw-w64-i686-posix
계속 제공됩니다 .*-runtime
-base
binutils-*
*-dev
귀하의 계획이 컴파일이 아니라 단지 그런 것을 사용하는 /usr/bin/x86_64-w64-mingw32-elfedit
것이라면 간단히 binutils-mingw-w64-x86-64
. 이를 사용하여 apt-file list <package>
각 패키지에서 제공하는 파일을 볼 수 있습니다.
Debian Bullseye(11) 및 Ubuntu 20.04의 종속성 트리는 다음과 같습니다.
mingw-w64
|- gcc-mingw-w64
| |- gcc-mingw-w64-i686
| | |- gcc-mingw-w64-i686-posix
| | | |- gcc-mingw-w64-i686-posix-runtime
| | | |- gcc-mingw-w64-base
| | | |- binutils-mingw-w64-i686
| | | `- mingw-w64-i686-dev
| | `- gcc-mingw-w64-i686-win32
| | |- gcc-mingw-w64-i686-win32-runtime
| | |- gcc-mingw-w64-base
| | |- binutils-mingw-w64-i686
| | `- mingw-w64-i686-dev
| `- gcc-mingw-w64-x86-64
| |- gcc-mingw-w64-x86-64-posix
| | |- gcc-mingw-w64-x86-64-posix-runtime
| | |- gcc-mingw-w64-base
| | |- binutils-mingw-w64-x86-64
| | `- mingw-w64-x86-64-dev
| `- gcc-mingw-w64-x86-64-win32
| |- gcc-mingw-w64-x86-64-win32-runtime
| |- gcc-mingw-w64-base
| |- binutils-mingw-w64-x86-64
| `- mingw-w64-x86-64-dev
`- g++-mingw-w64
|- g++-mingw-w64-i686
| |- g++-mingw-w64-i686-posix
| | |- gcc-mingw-w64-i686-posix
| | |- gcc-mingw-w64-i686-posix-runtime
| | `- gcc-mingw-w64-base
| `- g++-mingw-w64-i686-win32
| |- gcc-mingw-w64-i686-win32
| |- gcc-mingw-w64-i686-win32-runtime
| `- gcc-mingw-w64-base
`- g++-mingw-w64-x86-64
|- g++-mingw-w64-x86-64-posix
| |- gcc-mingw-w64-x86-64-posix
| |- gcc-mingw-w64-x86-64-posix-runtime
| `- gcc-mingw-w64-base
`- g++-mingw-w64-x86-64-win32
|- gcc-mingw-w64-x86-64-win32
|- gcc-mingw-w64-x86-64-win32-runtime
`- gcc-mingw-w64-base
보너스: mingw의 관리자가 이 사이트를 자주 방문합니다. 어쩌면 그에게서 더 나은 답변을 얻을 수도 있습니다.
답변3
apt download x86_64-w64-mingw32-gcc
dpkg-deb -R x86_64-w64-mingw32-gcc*deb temp
cp temp/your/required/file /tmp/file
rm -rf x86_64-w64-mingw32-gcc*