2012-08-29 58 views
13

我想鏈接到我的C項目的CSpec庫。這是我的Makefile位於測試文件夾:爲什麼不能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 

當我運行make我收到以下錯誤:

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

我已經確保libcs​​pec.a文件位於lib/cspec文件夾中,但爲了確保我也嘗試將它放在tests文件夾中,並刪除了-L命令,但無濟於事。

+0

嘗試刪除空間在'-L'之後。 – jmkeyes

+1

@Joshua K:沒有--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

相關問題