如何在makefile中包含静态库

我有下面的makefile

cxfiles=pthreads.cpp
CXXFLAGS=-O3-o prog-rdynamic-D_GNU_SOURCE-L./libmine
LIBS=-lpthread-ldl
全部:
$(CXX)$(CXX文件)$(LIBS)$(CXX文件)
清洁:
rm-f程序*.o

我试图将/libmine库包含在cxflags中,但这似乎不是包含静态库的正确方法,因为在编译程序时,会出现许多未定义的引用错误。那么,在makefile中包含静态库的正确方法是什么呢

回答的

使用

LDFLAGS=-L<库所在的目录&gt-l<图书馆名称>

比如:

LDFLAGS=-L.-lmine

为了确保静态编译,您还可以添加

LDFLAGS=-static

或者,你可以摆脱整个图书馆的搜索,直接与之链接

说你有
main.c fun.c

还有一个静态库libmine

然后,您只需在Makefile的最后一行链接中执行

$(CC)$(CFLAGS)main.o fun.o libmine.a

发表评论