이 오류는 "Win32 대상만 지원됩니다" 오류가 있는 cc1plus에서 발생합니까?

이 오류는 "Win32 대상만 지원됩니다" 오류가 있는 cc1plus에서 발생합니까?

크로스컴파일을 하려고 하는데하이페리온64비트 Debian Linux에서 32비트 Windows를 실행하지만 몇 가지 문제가 있습니다.

먼저 크로스 컴파일러를 설치해보려고 리눅스에 mingw32를 설치했습니다. 유사한 패키지가 많기 때문에 올바른 버전이 설치되어 있는지 확실하지 않습니다. 결국 나는 readme.txt를 찾아서 읽었고 i686-w64-mingw32-gcc가 올바른 32비트 Windows C 컴파일러로 간주되지만 i686-w64-mingw32-gcc에는 두 가지 버전이 있다는 것을 알게 되었습니다. 내가 찾고 있는 것: i686-w64-mingw32-gcc 및 i686-w64-mingw32-gcc-win32. 그래서 i686-w64-mingw32-gcc-win32를 사용하기로 결정했습니다.

다음으로 cc1plus를 찾을 수 없다고 불평합니다. 이 파일의 위치는 /usr/lib/gcc/x86_64-linux-gnu/5/로 연결됩니다. 나는 계속해서 /usr/bin에 /usr/lib/gcc/x86_64-linux-gnu/5/cc1plus에 대한 소프트 링크를 만들었습니다.

그 후 windows.h가 없다고 불평했습니다. /usr/i686-w64-mingw32/include/에 위치했습니다. CFLAGS 경로에 -I 옵션을 추가한 후 온갖 종류의 이상한 오류가 발생합니다. 그 중에는 다음 중 하나가 있습니다.

/usr/i686-w64-mingw32/include/_mingw.h:264:2: error: #error Win32 대상만 지원됩니다!

이제 막혔어요. 내가 어떤 단계를 잘못했는지 잘 모르겠습니다. 나는 이것이 내가 소프트 링크하고 있는 cc1plus의 버그일지도 모른다고 생각합니다. 그러나 그것이 잘못된 경우 올바른 버전을 얻는 방법을 모르겠습니다.

답변1

cc1plusWindows 크로스 컴파일러가 아닌 일반 C++ 컴파일러에 대해 연결하고 있습니다 . GCC 내부를 수정할 필요는 없습니다. 이 cc1plus오류는 또 다른 문제를 나타냅니다.

귀하의 경우에는 설치가 필요합니다mingw-w64( apt-get install mingw-w64). 그러면 Windows용 C 및 C++ 크로스 컴파일러와 해당 헤더 파일 및 라이브러리가 설치됩니다. 그러면 i686-w64-mingw32목표로 i686-w64-mingw32-gcc잘 작동할 것입니다. (v.의 내용에 대한 자세한 내용은 을 참조하세요 README.Debian. 기본값이 적합할 것입니다.)/usr/share/doc/gcc-mingw-w64-base-win32-posix

관련 정보