centos7에서 크로스 컴파일을 시도 중입니다. (저는 해당 환경에서 jenkins를 실행했습니다.) 웹에는 오래된 mingw 문서가 많이 있습니다. 분명히 답이 있을 것 같다여기하지만 사라졌습니다. 크로스 컴파일 단계 논의여기. 내가 하나 만들 수 있어sudo yum groupinstall -y 패키지 이름, 그러나 다양한 게시물과 포럼에서 본 것처럼 내가 시도한 것은 아무것도 작동하지 않았습니다(MinGW-64 mingw-64 mingw64, MinGW64 또는 MinGW 크로스 컴파일러). 또한 소스 코드를 다운로드하려고 시도했지만 다양한 전제 조건이 누락되어 있고 이를 얻으려고 시도했지만 존재하지 않거나 잘못된 버전이었기 때문에 성공하지 못했습니다.
답변1
와 함께EPEL 저장소가 설치됨다음을 설치할 수 있습니다 mingw-w64
.
yum install mingw64-gcc
답변2
마침내 작동하는 컴파일된 바이너리를 찾았습니다(내 목적에 충분함). 이것은 Linux용 64비트 바이너리입니다(사전 빌드되어 DL만 있고 압축을 풀고 tar를 상자에 업로드합니다). /opt/mingw64 디렉터리를 생성하고 이 디렉터리에서 파일을 추출해야 합니다(sudo tar -xvf ~/mingw-w64-bin_x86_64-linux_20131228.tar). https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/ http://www.blogcompiler.com/2010/07/11/compile-for-windows-on-linux/
컴파일러는 gcc 대신 /opt/mingw64/bin/x86_64-w64-mingw32-gcc입니다. 그 이유는 PATH 환경에 컴파일러가 여러 개 있어도 올바른 gcc를 선택할 수 있어야 하기 때문입니다.
답변3
EFI 바이너리 연결을 지원하기 위해 mingw64-binutils를 찾고 있다면 또 다른 더 쉬운 방법이 있습니다.
2016년 9월, Fedora는 EFI 연결에 필요한 i386pep을 지원하기 위해 binutils의 배포판 gnu 로더를 패치했습니다. 그래서 제가 한 일은 해당 소스 코드를 가져와서 패치를 추출하고 이를 C7에서 사용하려는 최신 binutils에 적용하는 것이었습니다. 도움이 더 필요하면 이 작업을 여러 번 수행했습니다. 또한 이런 방식으로 패치된 binutils의 작동하는 바이너리 패키지도 있습니다. 구축은 간단하고 빠르며 테스트하기도 더 쉽습니다.
C8에서 볼 수 있는 내용은 다음과 같습니다.
ld -V
GNU ld version 2.30-79.el8
Supported emulations:
elf_x86_64
elf32_x86_64
elf_i386
elf_iamcu
i386linux
elf_l1om
elf_k1om
i386pep <--- EFI support