2012-08-07 6 views
3

OSX Mountain Lion에서 c 파일을 컴파일하고 싶습니다. Xcode 4.4에서는 환경 설정 -> 다운로드를 위해 명령 줄 도구를 설치할 수 있습니다. 그러나 그 창에 내가 대신 xcrun 사용할 수있는 저를 조언 :xcrun gcc에서 헤더 파일을 찾을 수 없습니다.

Before installing, note that from within Terminal you can use the XCRUN tool to launch compilers and other tools embedded within the Xcode application. Use the XCODE-SELECT tool to define which version of Xcode is active. Type "man xcrun" from within Terminal to find out more.

나는 그런 식으로 그것을 할 드리겠습니다,하지만 난 문제가 STDIO.H을 찾아 그것을 얻는 데 문제가 있습니다.

$ xcrun gcc hello.c 
hello.c:1:19: error: stdio.h: No such file or directory 
나는 확실히 표준 앱 스토어를 통해 엑스 코드의 설치 한 후 내 시스템에이 파일이

: /Applications/Xcode.app/Contents/Developer//Platforms/MacOSX.platform/Developer/SDKs/MacOSX10 .8.sdk는/usr/포함/STDIO.H

내가 SDK를 지정 시도했지만 같은 오류가있어

: 일부 인터넷 검색 위의 명령을하기 전에 엑스 코드 - 선택 실행하려고 저를 주도

$ xcrun -sdk /Applications/Xcode.app/Contents/Developer//Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk gcc hello.c 

하지만, 불운. 어쨌든 한 버전의 Xcode 만 설치했습니다.

$ sudo xcode-select -switch /Applications/Xcode.app 

나는이 헤더를 찾는 방법을 얻을 수 있나요?

궁극적으로 저는 명령 줄 도구를 포기하고 설치했지만 내장 된 Xcode 도구를 사용하여이를 수행하는 방법을 알고 있으면 좋을 것입니다.

참고 : 컴파일러에 대한 표준이 아닌 SYSROOT를 지정해야합니다

#include <stdio.h> 

int main() { 
    printf("hello world!\n"); 
    return 0; 
} 

답변

4

: 여기에 내가 컴파일하려고 한 파일입니다.

이 트릭을 할 것 (새로운 표준 인) 그 소리/LLVM을 사용 :

xcrun clang --sysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/ -o hello hello.c 

그냥 "GCC"와 "그 소리"를 대체 GCC 고수하십시오.

2
아마 없을이와 직접적인 도움

,하지만 당신은 그래서 Xcode의 버전이 익숙해 질 것을 다른 프로세스의 gcc를 호출 할 때, 만들 수 있도록 일반적으로 명령을 xcrun 사용하는 별명, GDB, 자식 및 설정할 수 있습니다

alias gcc='xcrun gcc' 

필요할 경우 .bashrc 파일에 별칭을 넣고 필요에 따라 .bash_profile에서 원본을 가져올 수 있습니다.

이 모든 이점은 Xcode 명령 줄 도구를 설치할 필요가 없으며 패키지 관리자를 사용하지 않아도되므로 공간을 절약하고 복잡성을 줄이며 Xcode에서 이러한 도구를 자동으로 업데이트 할 수 있다는 것입니다.

+0

예 그게 매우 도움이 시점이 아니다 않더라도를 질문에 대한 대답. –

1

10.8을 사용하여 xcrun --sysroot를 사용하면 작동하지 않습니다. clang 문서를 살펴보면이 경우에 -isysroot 옵션을 사용할 수 있음을 알았습니다.

사용 :

xcrun gcc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk 

나 :

xcrun clang -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk 

을 나를 위해 유용 않은 다음 별칭을 만들 :

alias xcrungcc='xcrun gcc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk' 
alias xcrunclang='xcrun clang -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk' 
관련 문제