도와주세요!!
글 수 15,339
2007.02.13 18:12:30 (*.138.143.52)
6680
호오~~ 64 비트 시스템에서 컴파일 하시는 군요
부럽습니당. ^^
님의 질문에 답변하기에는 제가 64비트 시스템을 가지고 있지 않아서 정확할지 모르겠지만
아는 한계내에서 설명을 드리죠
우선 configure 라는 명령에 옵션에서 자주 쓰이는 3가지를 살펴 봅시당 랄랄랄~~~
--build : 현재 configure 의 대상이 되는 소스들을 컴파일하고 실행하는 환경
--host : 현재 configure 의 대상이 되는 소스들에 의해서 생성된 실행 파일이 실행되는 환경
--target : 현재 configure 의 대상이 되는 소스에 의해서 생성된 실행 파일의 결과가 실행되는 환경
뭐 이런 의미를 가지고 있습니다.
크로스 컴파일러 같은 경우에는 저 각각의 옵션의 의미가 정확하죠
그럼 크로스 컴파일러를 만들는 입장에서 생각해 봅시당
즉 우리는 arm 에서 동작하는 프로그램을 생성하는 크로스 컴파일러 프로그램을 만들기 위해서 소스들을 컴파일하죠
그렇다면 ?
당근 build 는 현재 환경이 되죠.. 크로스 컴파일러 소스를 컴파일하니깐
host 는 마찬가지로 현재 환경이 되겠죠... 대부분의 경우
target는 arm 이 되겠죠...
이런 이유로 build 와 host 옵션은 사실 안써도 configure 가 자동으로 설정합니다.
하지만 님의 경우같이 특이한(?) 경우에는 이런 옵션을 각각 써 주어야 합니다.
원칙상 build,host,target에 써주는 이름은 다음과 같은 형식을 가지고 있어야 합니다.
머신-시스템-운영체제-릴리즈-버전
이와 관련된 것을 한번 심각하게 분석하고 싶으시면 배쉬 스크립트를 공부하기고 configure.guess 란 파일을
공부하시면 되겠습니다. 흠흠...
어쨌든 가장 무난한 옵션은 그냥 build 와 host 에는 i386-pc-linux-gnu 를 주시면 편하구요 target=arm-linux 주시는 것이
가장 편합니다.
--target=arm-linux-
--host=i386-linux-gnu
--build=i386-linux-gnu
근디 이건 최적화가 조금 들 되니깐... 펜티엄이나 셀루론이면
--target=arm-linux-
--host=i686-linux-gnu
--build=i686-linux-gnu
이렇게 쓰시면 됩니다. 이걸 한번 시도해 보시고 안되면 바로 윗것을 시도해 보세용
왜냐?
64비트는 제가 안써서 모르지만 리눅스가 동작하고 있는 것을 보면 일단 호환모드로 동작이 될듯해서요 ^^
부럽습니당. ^^
님의 질문에 답변하기에는 제가 64비트 시스템을 가지고 있지 않아서 정확할지 모르겠지만
아는 한계내에서 설명을 드리죠
우선 configure 라는 명령에 옵션에서 자주 쓰이는 3가지를 살펴 봅시당 랄랄랄~~~
--build : 현재 configure 의 대상이 되는 소스들을 컴파일하고 실행하는 환경
--host : 현재 configure 의 대상이 되는 소스들에 의해서 생성된 실행 파일이 실행되는 환경
--target : 현재 configure 의 대상이 되는 소스에 의해서 생성된 실행 파일의 결과가 실행되는 환경
뭐 이런 의미를 가지고 있습니다.
크로스 컴파일러 같은 경우에는 저 각각의 옵션의 의미가 정확하죠
그럼 크로스 컴파일러를 만들는 입장에서 생각해 봅시당
즉 우리는 arm 에서 동작하는 프로그램을 생성하는 크로스 컴파일러 프로그램을 만들기 위해서 소스들을 컴파일하죠
그렇다면 ?
당근 build 는 현재 환경이 되죠.. 크로스 컴파일러 소스를 컴파일하니깐
host 는 마찬가지로 현재 환경이 되겠죠... 대부분의 경우
target는 arm 이 되겠죠...
이런 이유로 build 와 host 옵션은 사실 안써도 configure 가 자동으로 설정합니다.
하지만 님의 경우같이 특이한(?) 경우에는 이런 옵션을 각각 써 주어야 합니다.
원칙상 build,host,target에 써주는 이름은 다음과 같은 형식을 가지고 있어야 합니다.
머신-시스템-운영체제-릴리즈-버전
이와 관련된 것을 한번 심각하게 분석하고 싶으시면 배쉬 스크립트를 공부하기고 configure.guess 란 파일을
공부하시면 되겠습니다. 흠흠...
어쨌든 가장 무난한 옵션은 그냥 build 와 host 에는 i386-pc-linux-gnu 를 주시면 편하구요 target=arm-linux 주시는 것이
가장 편합니다.
--target=arm-linux-
--host=i386-linux-gnu
--build=i386-linux-gnu
근디 이건 최적화가 조금 들 되니깐... 펜티엄이나 셀루론이면
--target=arm-linux-
--host=i686-linux-gnu
--build=i686-linux-gnu
이렇게 쓰시면 됩니다. 이걸 한번 시도해 보시고 안되면 바로 윗것을 시도해 보세용
왜냐?
64비트는 제가 안써서 모르지만 리눅스가 동작하고 있는 것을 보면 일단 호환모드로 동작이 될듯해서요 ^^