2014-12-13 3 views
2

질문이 사소한 경우 사과드립니다.하지만 만족스러운 답변을 찾지 못한 채 gcc 소스 코드를 검색했습니다.libc 이름과 컴파일러

그래서 컴파일러 (gcc/clang/etc ...)가 libc의 파일 이름을 어떻게 알고 있습니까? 나는 유닉스 계열 시스템이 libc.a, libc.so 등으로 이름을 붙인다는 것을 알고있다. 그러나 예를 들어, mac os x는 libSystem이라고 명명한다. 이름이 컴파일러의 코드에 하드 코드 된 것 같지만 아직 증거를 찾지 못했습니다.

+0

...... ./gcc/config/i386/sysv5.h: %{!shared:%{!symbolic:-lc -lcrt}}" 

결과 나에게 매우 유용한 도구에 대해 말해 보자. gcc 소스에 적용하면'gcc/config/darwin.h'에 문자열'-lSystem'이 들어 있다는 것을 알 수 있습니다. –

답변

1

C 라이브러리 링크 플래그는 소스 코드 gcc -lc 또는 -lSystem의 소스 코드 gcc에 하드 코딩되어 있습니다. 편집에서 이름 libc.so 또는 검색 경로에 libc.a와 libc에 대한 GCC 검색 수는

아래는 GCC 소스 코드 디렉토리 아래 grep '\-lc' -r ./gcc/config/에서 일부 결과입니다 (접두사 lib 및 접미사 .so 또는 .a 추가). `grep` : grep '\-lSystem' -r ./gcc/config/

./gcc/config/darwin.h:#define LIB_SPEC "%{!static:-lSystem}" 
관련 문제