2012-03-05 2 views
4

완전히 최신이고 최신 gcc 환경을 설정하려고합니다 ... 기본적으로 gcc 4.6.3 및 binutils 2.22. Xcode 4.2.1에서 제공되는 꽤 오래된 gcc 4.2.1 (llvm)이 아닙니다. 내 문제는 컴파일하는 것과는 다릅니다 (현재는 적어도). binutils, gcc 및 둘 모두를 동시에 완벽하게 컴파일 할 수 있습니다. 그러나 나는를 컴파일 할 때마다이 같은 단지로 대상을 어디서 찾을 수 있는지
검사 컴파일 ... 대상 AR을 찾을 수 확인 구성의 출력gcc 또는 binutils에서 새 링커 또는 어셈블러를 빌드 할 수 없습니다.

의 끝에 나타납니다 찾을 ... 호스트 도구 대상 CC를 찾을 확인
단지 ... 단지
이 곳으로 확인 컴파일 ... 단지
어디에 된 libstdC++에 대한 목표 C++를 찾을 확인 컴파일 ...
어디 대상 C++를 찾을 확인 컴파일 대상 dlltool을 찾으십시오 ... 방금 컴파일 된
대상 gcc를 찾을 위치를 확인 ... j UST는 호스트 도구 ... 단지
어디 대상 gccgo를 찾을 확인 컴파일 ... 단지
어디 대상 gfortran을 찾을 확인 컴파일 ...
어디 대상 GCJ를 찾을 검사를 컴파일 찾을 확인
target ld ... host tool
host tool을 찾을 수있는 곳을 확인 ... host tool
타겟 nm을 어디에서 찾을 수 있는지 체크 ... 방금 컴파일 된
어디서 대상 objdump를 찾을 수 있는지 체크 ... 방금 컴파일
대상 ranlib를 찾을 위치를 확인 ... 방금
대상 지구를 찾을 위치를 확인 컴파일 ... 방금

내가 LD에 대한 심볼릭 링크를 만들어 를 컴파일 ... 단지
대상 windmc을 어디서 찾을 수 있는지 확인 컴파일 ... 목표한데로를 찾을 확인
를 컴파일, 옵 코드, BFD, 가스, gprof 및 binutils를 gcc 소스 폴더에 저장하십시오. (도움이되는 경우)

위의 그림에서 알 수 있듯이 대부분의 소프트웨어의 "컴파일 된"버전을 얻을 수 있습니다. as와 ld를 컴파일하는 법.

하는 모든-LD를

을 내가 내가 이미 '했다 "는 것 : 나는 (하여 바이너리 유틸리티 패키지)하고 실행 말한다 LD 폴더에있는 README 파일을 읽고 근원, 그것은 나에게 아무것도 남기지 않는다는 것을 나에게 말한다. ...

내가 생각할 수있는 유일한 물건은 일시적으로 ld를 포함하지 않기 위해 나의 길을 수정하는 것이다. 이

어쨌든 즉시 생각 후에 나는 내가 아무것도가없는 것입니다 지금있는 바보 될 것 relized

whereis의 신분증과 빠른 검사 일명

... 아주 쉬운 것입니다 gcc (또는 심지어 ld의 새로운 버전) (심지어 내가 전혀 작동하지 않으면)

그래서, 결론적으로, 나는 ld의 새 복사본을 컴파일하려고합니다.

사실은 :

  • 나는 맥 OS X 사자를 실행하고 있습니다.
  • Mac OS X Lion (gcc 4.2.1)과 함께 제공되는 기본 gcc를 사용하여 gcc 4.6.3을 컴파일하려고합니다.
  • configure 스크립트는 새로운 링커와 어셈블러를 컴파일하고 싶지 않다고 생각하는 것 같습니다.
  • 저는 gcc와 binutils를 성공적으로 만들었지 만 새로운 링커와 어셈블러는 사용하지 않았습니다.
  • binutils gcc를 --with-ld = yes 및 --with-gold = no 옵션과 함께 컴파일하려고 시도했지만 아무 것도하지 않는 것으로 보입니다.
  • gcc 및 binutils 구성에 사용 된 것과 동일한 접두사에 gcc v4.2.1을 설치하여 gmp v5.0.4, mpfr v3.1.0 및 mpc v0.9를 빌드했습니다.
  • 각 구성에 대해 gmp, mpfr 및 mpc의 위치를 ​​명시하고 있습니다.
  • gcc, mpfr 및 mpc를 gcc와 별도로 빌드했습니다 (이렇게하면 빌드 오류가 발생 함).
  • gcc, binutils, gmp, mpfr 및 mpc는 모두 소스 디렉토리의 하위 디렉토리가 아닌 별도의 디렉토리에 빌드됩니다 (gcc 설치 지침에서 권장).
  • 나는 다음과 같은 옵션을 gcc가 컴파일 오전 :
    ../gcc-4.6.3/configure --prefix = $ PREFIX --with-GMP = $ PREFIX --with-mpfr = $ PREFIX를 - with-mpc = $ PREFIX - 사용 가능 확인 = 해제 - 프로그램 접미사 = -4.6.3 - 사용 가능 - ld = 예 - 사용 가능 - 금 = 아니오
  • 나는 주로 this tutorial을 따른다.
  • 내 컴퓨터에 다른 컴파일러가 없기 때문에 Mac OS X 기본 llvm 컴파일러 (gcc 4.2.1로 이전에 설명한 내용)를 사용해야합니다. here은 읽지 않지만 작동하지 않습니다. 내 컴퓨터에 gcc-4.2.
  • 방금 ​​컴파일 한 gcc (gcc-4.6.3)의 새 버전을 사용하여 gcc-4.7.0 (최신 스냅 샷)을 컴파일하면 컴파일러 오류가 발생합니다 (환경 변수 CC 및 CXX 설정).
  • 나는 binutils보다 먼저 gcc를 컴파일하려고 시도했다. 그리고 다른 방법으로는 결국 binutils로 gcc를 빌드하기로 결정했다. 당신이 위의 출력은 내가 금메달에 this 약간의 게시물을 읽을
  • 한 번에 컴파일 모두, 그리고 --enable-금 --enable-LD를 추가했습니다.
    1. 컴파일 GMP : 그들은 아무것도
    2. 내가 일을했다하는 순서를 변경하지 않습니다.
    3. 설치하십시오.
    4. mpfr을 컴파일하십시오.
    5. 설치하십시오.
    6. mp3를 컴파일하십시오.
    7. 설치하십시오.
    8. ld, gas, binutils, opcodes, gprof, bfd의 주 gcc src 디렉토리에 심볼릭 링크를 만듭니다.
    9. gcc 구성.
    10. "상태 보고서"를 찾으십시오.
    11. 아마도 ld와 as를 빌드하는 또 다른 방법을 생각해보십시오.
    12. 오류가 있습니다.
    13. 스택 오버 플로우가 발생합니다. "fazo"로

내가 정말 노력

... 그래서 여기가 내가 바이너리 유틸리티를 컴파일하는 방법에 대해 많은 사람을 이야기하고 있지 않다 고 말했다 먼저 gcc를 컴파일하는 것보다는 gcc를 사용하여 binutils를 빌드하는 것보다 좋은 방법이지만 ld, as 또는 심지어 gold는 컴파일하지 않는 것이 좋습니다. 그런 다음 llvm 컴파일러를 사용하여 binutils와 gcc를 작성했습니다. 그것도 괜찮 았지만 여전히 ld, as, 또는 gold는 없습니다. 마지막으로, 나는 here을 읽고 binutils의 일부 항목에 심볼릭 링크를 만들 수 있으며 gcc가이를 탐지하고 빌드 할 수 있다고 했어. 그리고 gcc는 대부분 (ld, opcodes, bfd, gas, gprof 및 binutils에 대한 gcc 디렉토리에 심볼릭 링크를 넣기 전에 언급했듯이) 실제 실제 문제는 configure 스크립트가 새로운 어셈블러와 링커를 컴파일하도록 알려주는 것입니다. 또한, 저를 괴롭히는 것은 binutils README 폴더에 있습니다. 단순한 ./configure make make는 모든 도구를 빌드하고 설치합니다. 왜 이것이 아닌지를 알아 내려고합니다.

최종 명령은 다음과 같습니다. ../binutils-2.22/configure --prefix = $ PREFIX --with-gmp = $ PREFIX --with-mpfr = $ PREFIX --with-mpc = $ PREFIX --program-suffix = -4.6.3 --enable-ld --with-gnu-as --with-gnu-ld

아직 나는 가스가없고 가스가 전혀 없습니다.

도움을 주시면 대단히 감사하겠습니다. 표준 :

+0

binutils를 컴파일 할 때 AS와 LD를 컴파일 했습니까? binutils를 컴파일 한 후 설치 했습니까? binutils를 컴파일하고 설치 한 후 gcc를 컴파일 했습니까? – fazo

+0

난 그냥 질문을 업데이 트했는데, 그것은 당신에게 필요한 것을 말해야한다 –

+0

도움을 주셔서 감사합니다 –

답변

0

저는 그것이 기본적으로 맥 문제라는 것을 깨달았습니다. 설치하고 우분투를 얻은 후에 링커와 어셈블러를 만들었습니다 ... 여전히 gcc 컴파일에 어려움이 있지만 데비안의 새로운 멀티 아키텍처 지원 때문입니다 ... 그러나 이것은 또 다른 문제입니다 ... 도움을 주셔서 감사합니다 Marco van de Voort

2

AFAIK 빌드 (구성; 만들기) ...

덕분에 (당신은 내가 제공하지 않은 몇 가지 정보를 원하는 경우 또한, 단지 문의), 결과는 다르게 이름이 지정됩니다. 새로운 가스와 새로운 가스 또는 새로운 것.

OS X은 일반적으로 binutils가 아니라 Apple 자체 Mach-O 링커 (cctools)를 사용합니다. 비록 당신이 성공하더라도, 그것은 실행 가능한 해결책으로 이끌지 않을 것입니다.