[OS X] gcc로 -static 옵션을 사용하면 clang : error가 납니다.


간단한 쉘 실행하는 c코드를 작성해서 gcc로 -static 옵션을 주고 컴파일 했는데요. 다음과 같은 오류가 납니다.

ld: library not found for -lcrt0.o clang: error: linker command failed with exit code 1 (use -v to see invocation)

어떻게 해결해야 할까요?

  • 2016년 03월 23일에 작성됨

조회수 374


2 답변


좋아요
1
싫어요
채택취소하기

위 설명처럼 gcc 라이브러리들 자체가 static 으로 모두 컴파일 된 것이 아니라서 무조건 static 라이브러리를 쓰도록 하는 -static 을 쓸 수가 없습니다. 어떤 라이브러리가 스태틱으로 컴파일 된 경우라면 -llibrary.a 처럼 스태틱 라이브러리를 직접 지시하던가 -Bstatic 명령을 써서 static 라이브러리를 검색하도록 지시하면 됩니다.

  • 2016년 04월 06일에 작성됨


Apple은 Mac OS X의 gcc에서 static linking를 지원하지 않는다고 합니다.

Apple does not support statically linked binaries on Mac OS X. A statically linked binary assumes binary compatibility at the kernel system call interface, and we do not make any guarantees on that front. Rather, we strive to ensure binary compatibility in each dynamically linked system library and framework.

참고: https://developer.apple.com/library/mac/qa/qa1118/_index.html

  • 2016년 03월 23일에 작성됨
    Polyglot Programmer

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close