链接静态库是有顺序的

时间:2022-01-03 19:32:23

这两天编译的时候总是出现莫名其妙的错误,都是链接的错误,但是我看了下源码,觉得应该包涵在库里面了啊,

今天把库都合到一个文件夹之后,发现,如果采用ls自己的顺序去书写static链接的库的顺序还是会报错。

采用原来的顺序后,发现可以正常编译了。。。

真是纠结的蛋疼。。。

最后把~目录下所有的头文件都拷贝到inc文件夹下,用到的所有的a文件都拷贝到lib文件夹下

libsvc有两个,但是这两个是不一样的,所以一个叫libsvc1.a,另一个叫libsvc2.a

 

最终makefile简化成

libs=lib/libdbmuse.a lib/libdhashclient.a lib/libutil.a lib/libsvc1.a lib/libtame.a lib/libsfsmisc.a lib/libsvc2.a lib/libsfscrypt.a lib/libarpc.a lib/li    basync.a
a.out:
g++ -c test.cpp -I ./
g++ -static -g -O2 -Wall -Werror -o a.out test.o $(libs) -lnsl -lresolv -lgmp;
clean:
rm -rf *.o a.out