2012-04-29 2 views
0

Windows에서 호기심 작성 커널과 마이크로 OS를 컴파일하는 방법을 찾고 있는데, 지금까지는 "빌드 십자가 모든 포럼 및 기타 장소에서 "컴파일러"를 선택하십시오. 불행히도 나는 지금 당장 할 수있는 지식이 부족하므로 누구나 MinGW를 사용하여 64 비트 Windows 7 설치에서 GCC/Binutils를 컴파일하는 방법을 알려주십시오. 시간 내 주셔서 감사합니다, Erkling.MinGW를 사용하여 커널을 컴파일하기 위해 크로스 컴파일러 컴파일하기

+0

컴파일러로 컴파일 된 커널의 교차 컴파일로 컴파일러를 교차 컴파일 했습니까? –

+0

MingGW는 이미 64 비트 창에서 실행됩니다. 실행중인 CPU 아치 용 커널을 빌드하기 위해 크로스 컴파일러가 필요하지 않습니다. 그래서 나는 당신의 질문이 어떤 의미인지 확신하지 못합니다. – Mat

+0

문제는 MinGW가 바이너리 출력 형식에 링크하려고 할 때 MinGW가 "PE 파일이 아닌 PE 파일"(또는 그와 비슷한 것)을주는 경향이 있다고 들었습니다. "크로스 컴파일러". (나는 거기에 잘못된 용어가 있다고 생각합니까?) – Erkling

답변

1

gcc를 크로스 컴파일러로 컴파일하는 것은 매우 간단해야하지만 Windows에서 시도한 적이 없습니다. 크로스 컴파일러 GCC는 --host=<host_os><host_os> 컴파일러가 실행되는 플랫폼 (창 귀하의 경우)이며, <target_os> 당신이 표적으로하는 플랫폼입니다 --target=<target_os로 구성 될 필요로

내장합니다. 당신이 아마추어라고 말했기 때문에 아마 1586-elf 또는 이와 유사 할 것입니다.

http://wiki.osdev.org/GCC_Cross-Compiler에 대한 자세한 정보가 있습니다. 해당 페이지를 이동하여 도움이되는지 확인하십시오. 이 방법을 Windows에서 작동 시키려면 Cygwin을 GCC와 함께 설치하고 binutils와 gcc를 다운로드하고 빌드하는 것만 큼 간단해야합니다.

EDIT가

--nostdlib로 컴파일 PE 파일 objcopy 스트립을 사용함으로써 해결되었다. 원하는 모든 파일이 플랫 바이너리 파일이라면이 파일이 옵션 일 수 있습니다.

+0

안녕하세요, 링크 해 주셔서 감사합니다. 내 질문에 대한 매우 분명한 대답을 보았지만, 커널을 PE 형식으로 컴파일 한 다음 objcopy로 제거했다. 어쨌든 고마워! :) 편집 : 오, 이걸 잊어 버렸지 만, 나는 또한 그것을 전달 - nostdlib. 다른 사람을 끌어 들여서이 문제를 해결할 수 있습니다. :) – Erkling

+0

확인. 나는 당신이하고 싶은 것이 무엇인지에 대한 질문에서 그다지 확실하지 않았습니다. 찾은 것을 추가하기 위해 내 대답이 업데이트되었습니다. 문제의 해결책으로 표시 할 수 있다면 다른 사람들이 혜택을 볼 수 있습니다. – Will

+0

답장을 보내 주셔서 감사합니다. :) – Erkling

관련 문제