2013-12-11 8 views
3

에 대한 사용자 정의 다음 stdlib 디렉토리를 지정하고는 어떻게 연타와 LLVM 3.3이 LLVM

$ /tmp/clang/bin/clang -print-search-dirs 
programs: =/tmp/clang/bin:/usr/lib/gcc/i486-linux-gnu/4.4/../../../../i486-linux-gnu/bin 
libraries: =/tmp/clang/bin/../lib/clang/3.3:/usr/lib/gcc/i486-linux-gnu/4.4:/usr/lib/gcc/i486-linux-gnu/4.4/../../../../lib32:/usr/lib/../lib32:/usr/lib/i486-linux-gnu/../../lib32:/usr/lib/gcc/i486-linux-gnu/4.4/../../..:/lib:/usr/lib 

어떻게 사용에 연타는 다음 stdlib /usr/lib/gcc/i486-linux-gnu/4.4 이외의 (예를 들어 libgcc) 디렉토리를 지시 할 수있다? 대신 /tmp/mygccstd을 사용하고 싶습니다.

/usr/lib/lib도 있습니다. 어떻게 비활성화합니까?

+0

'-gcc-toolchain' 플래그는'programs :'와'libraries :'의 일부를 변경합니다. – pts

+0

'-nostdinc' 시도 –

답변

1

-B--sysroot의 조합이 라이브러리의 트릭을 만들었습니다. -nostdinc, -isystem-cxx-isystem의 조합은 포함의 트릭을 만들었습니다. 이 모든 플래그가 clang --help으로 표시되는 것은 아니며, 그 중 일부는 man gcc에서 배웠고, 다른 일부는 Clang 소스 코드를 읽고 다른 일부는 온라인에서 배웠습니다.

-gcc-toolchain도 차이를 만들었지 만 이상한 규칙을 사용하여 라이브러리를 찾고 경로명 구성 요소에서 심볼릭 링크를 허용하지 않으므로 위의 다른 플래그를 대신 사용했습니다.

+2

이 '대답'은 실제로 원래 질문에 대한 해결책을 구성하지 않습니다. 실제로 "나는 몇 가지 플래그를 사용했습니다"라고 말합니다. 샘플 작업 솔루션은 받아 들인 응답을위한 최소값이라고 생각합니다. –

+0

이 답변에는 샘플 솔루션이 포함되어 있지 않다는 점에 동의합니다. 이 대답의 장점은 유용 플래그가 (100 개 중) 어떤 것이 있는지를 밝혀내는 것이며, 또한 이러한 플래그로 해결할 수 있다는 증언입니다. 나는이 답변이 정말로 "나는 깃발을 사용했다"고 당신의 의견에 강력하게 동의하지 않습니다. 이 답변은 실제로 도움이되고 유용합니다. "나는 일부 깃발을 사용했습니다"는 전혀 도움이되지 않습니다. 나는 샘플 작업 솔루션이 허용 된 대답에 대해 최소한이어야한다는 것에 동의하지 않습니다. – pts

+0

@pts, 내 clang 일부 헤더 파일을 인식 할 수 없습니다, 특히''. 그러나이 프로그램은 내 Mac에서 g ++ - 5 (사용자 정의 gcc)로 잘 컴파일됩니다. 그래서 정확히, 어떤 명령을 g ++ 경로에서 헤더 파일을 찾도록 제공해야합니까? - 5가 검색 중입니까? 나는'g ++ - 5 -print-search-dirs'의 출력을 가지고 있습니다. –