2012-08-29 9 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フォルダにありますが、テストフォルダ内に配置し、-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

関連する問題