我有一个名为FOO的目录,它有X.a和X.so。我只想选择X.a. 所以在我的makefile中我使用以下内容链接它
EXE: OBJ.o
g++ -L/PATH/TO/FOO -o $@ $< -static -lX
但是当我这样做时,我收到以下错误
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lc
如何正确完成。一种方法是给出X.a的abs路径。还有其他方法吗?
答案 0 :(得分:2)
试试这个:
EXE: OBJ.o
g++ -L/PATH/TO/FOO -o $@ $< -Wl,-Bstatic -lX -Wl,-Bdynamic
答案 1 :(得分:0)
如果我正确阅读ld
的文档,则不必指定绝对路径,但可以使用其全名来指定库:
EXE: OBJ.o
g++ -L/PATH/TO/FOO -o $@ $< -l:X.a