为什么gcc找不到我的静态库?

时间:2012-08-29 21:56:21

标签: c gcc

我正在尝试将cspec库链接到我的C项目中。这是我的Makefile,位于tests文件夹中:

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命令,但无济于事。

1 个答案:

答案 0 :(得分:32)

变化:

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

为:

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

(按照惯例,gcc和其他* nix编译器会自动添加lib前缀和相应的后缀。)