我有下面的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<;库所在的目录>-l<;图书馆名称>;
比如:
LDFLAGS=-L.-lmine
为了确保静态编译,您还可以添加
LDFLAGS=-static
或者,你可以摆脱整个图书馆的搜索,直接与之链接
说你有
main.c fun.c
还有一个静态库libmine
然后,您只需在Makefile的最后一行链接中执行
$(CC)$(CFLAGS)main.o fun.o libmine.a