문제

Linux에서 다른 플랫폼의 바이너리를 만들 수 있습니까? GCC를 사용하여 편집 할 수있는 프로그램이 있다고 가정 해 .o 파일이지만 출력에 사용할 수 있습니다 exe Windows에서 실행할 수 있습니까?

도움이 되었습니까?

해결책

짧은 버전 : 그래 넌 할수있어. 이것은 ... 불리운다 크로스 컴파일 이 키워드를 사용하여 Google에서 검색하면 적절한 결과를 얻을 수 있습니다.

이제 현실 :두 플랫폼에서 비교적 작은 C/C ++ 코드를 실행하려면 상당히 노력한 노력이 필요합니다. API, 사용자 인터페이스, 컨벤션 호출, 정렬 등의 차이는 일반적인 관행입니다. 다행히도 당신을 도울 수있는 많은 크로스 플랫폼 도구가 있습니다. Google을위한 QT, 크로스 플랫폼 사용자 인터페이스 라이브러리. 또는 사용 후원 언제 어디서 할 수 있습니다. 당신은 아마 수많은 것을 추가해야 할 것입니다 #ifdef __WINDOWS__ 또는 #ifdef __UNIX__ 각 플랫폼에 대해 별도의 코드 라인을 지정하기 위해 (이 명령문이 잘못 될 수 있습니다).

따라서 두 플랫폼을 모두 코딩하는 것은 신경이 아니며, 쓰고있는 소프트웨어의 복잡성에 따라 일반적으로 운영 체제에 대한 심층적 인 지식과 특히 OS'es가 필요합니다.

다시 말해서, .E에서 .exe를 .Exe로 만드는 도구는 없습니다.

행운을 빕니다!

~ Rob

다른 팁

예. 대상 플랫폼의 크로스 컴파일러를 찾으십시오.

이것은 ARM 프로세서 및 기타 Inged Platform을위한 모바일 애플리케이션을 개발하는 방법입니다. 예 : Symbian 응용 프로그램을 작성하면 개발 중에 Windows 시뮬레이터에서 실행할 수 있지만 배포 할 때는 거의 모든 휴대 전화가 ARM 프로세서에서 실행되므로 ARM 크로스 컴파일러를 사용하여 프로젝트를 컴파일해야합니다.

확신하는. Windows Binaries를 생성 할 수있는 컴파일러가있는 경우 컴파일러가 어떤 시스템을 실행하는지는 중요하지 않습니다.

Unix 중심 오픈 소스 프로젝트를위한 많은 Windows Binaries가 Windows를 실행하지 않고 제작됩니다. 예를 들어 레이크 컴파일러 MRI 및 Yarv Ruby 구현을위한 이진 확장을 구축하기위한 프로젝트입니다. Rake-Compiler의 주요 목표 중 하나는 Extension Writers가 Linux 또는 OSX에서 Windows의 확장을 게시 할 수 있다는 것입니다.

"Linux Cross Compilation Windows"용 Google. 그만큼 첫 번째 링크 꽤 좋아 보인다.

나는 그런 종류의 도구를 모르지만, 원칙적으로 나는 그것을 불가능하게 만드는 어떤 이유도 볼 수 없습니다.

예를 들어 Linux에는 Linux API 기능이 아닌 Win32 API 기능 (주소를 알고 있음)에 맵핑하여 C ++ 코드를 컴파일 할 수있는 도구가있을 수 있습니다!

내 아이디어 중 어느 것도 당신의 질문에 직접 대답하지 않지만, 고려할 가치가 있습니다.

다른 컴퓨터에서 Windows를 실행하는 것 (물리적 또는 가상)도 옵션입니다. 전체 Windows 환경을 사용하면 Windows 버전을 훨씬 쉽게 디버깅하고 테스트 할 수 있습니다.

물론 Java 또는 해석 된 언어 (예 : Python)를 사용하여 플랫폼 특정 코드를 최소화 할 수 있습니다.

kdevelop 및 QT를 사용해보십시오 GUI가 필요한 경우 Linux 호스트에서 Windows GUI 및 Console 프로그램을 '확실히'빌드 할 수 있습니다.

"도구 체인"및/또는 "크로스 컴파일"에 대한 인터넷 검색을 시도 할 수 있습니다. 위의 내용은 라우터 용 소프트웨어 (Windows가 아닌 '기타'플랫폼입니다) 기본적으로 다른 것을 사용하여 컴파일을 수행합니다. 내 대상 OS를 위해 컴파일하는 컴파일러

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top