2012-08-29 5 views
13

C 프로젝트에 cspec 라이브러리를 연결하려고합니다.gcc에서 정적 라이브러리를 찾을 수없는 이유는 무엇입니까?

all: test 

test: sample.o 
    gcc -Wall -o test sample.o -L ../lib/cspec -llibcspec.a 

sample.o: sample.c 
    gcc -Wall -c sample.c -I../lib/cspec 

clean: 
    rm -rf *o test 

내 디렉토리는 다음과 같습니다 :이 테스트 폴더에있는 내 메이크입니다

/ 
/src 
/lib 
/lib/cspec 
/tests 

나는 다음과 같은 오류가 나타날 수 있도록 실행하면 : 나는 확실히 만든

gcc -Wall -o test sample.o -L ../lib/cspec -llibcspec.a 
/usr/bin/ld: cannot find -llibcspec.a 

을 libcspec.a 파일은 lib/cspec 폴더에 있지만 테스트 폴더 내에 배치하고 -L 명령을 제거해 보았습니다.

+0

은 공간을 제거하십시오 '-L' 다음에. – jmkeyes

+1

@Joshua K : no -'-L' 다음의 공백은 선택 사항이며 아무런 차이가 없습니다. '-I'의 경우도 마찬가지입니다. –

답변

26

변경 :

gcc -Wall -o test sample.o -L ../lib/cspec -llibcspec.a 

에 :

gcc -Wall -o test sample.o -L ../lib/cspec -lcspec 

(컨벤션, GCC 및 기타 * nix에서 스크립트 컴파일러에 의해 자동으로 lib 접두사와 적절한 접미사를 추가합니다.)

+2

잠깐, 그게 작동 했어! 감사! – sdasdadas

관련 문제