2017-03-14 3 views
0

정적 라이브러리를 만들고 싶습니다. 정적 라이브러리 gcc - 라이브러리를 찾을 수 없음

static: main.c tree.c 
    gcc -c -Wall tree.c -o tree.o 
    ar crs libtree.a tree.o 
    gcc -Wall -static main.c -L. -ltree -o main 
    ./main 

내가 "정적하게"쓰기

, 그것은 나에게 보여줍니다 :

gcc -c -Wall tree.c -o tree.o 
ar crs libtree.a tree.o 
gcc -Wall -static main.c -L. -ltree -o main 
ld: library not found for -lcrt0.o 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [static] Error 1 

그것은 파일을 생성 : tree.o 및 libtree.a을 나는 메이크있다. 왜 도서관을 찾지 않는지 나는 모른다. 그것을 해결하는 방법을 알고 있습니까?

+0

해당 스 니펫은이 오류 메시지를 생성 할 수 없습니다! ** ** 모두주의 깊게 읽으십시오 **. 그리고 그것은 분명히 gcc가 아니며 C와 관련이 없습니다. – Olaf

+0

편집 됨. 이제는 맞습니다. 죄송합니다. –

+0

게시 한 내용을 편집하는 것은 방법이 아닙니다. [mcve]와 실제 출력을 제공해야합니다! – Olaf

답변

0

아마도 시스템이 정적 연결을 위해 설정되지 않았을 수 있습니다. 대부분의 최신 리눅스 배포판은 정적 링크가 아니므로 매우 권장하지 않습니다.

glibc-static 또는 비슷한 이름의 패키지를 찾고 설치하십시오.

시스템이 Linux가 아닌 경우 (MacOS X 일 수도 있음, 그 사실을 밝히지 않았 음) - 운명에 처해 있습니다. 정적 링크는 해당 플랫폼에서 전혀 지원되지 않습니다.

+0

저는 macOS를 사용하고 있습니다. 슬픈 것처럼 정적 링크를 설정하지 않았다고 생각합니다. –

관련 문제