1 我平时写的makefile分享
CROSS_COMPILE=
CC = $(CROSS_COMPILE)gcc
STRIP = $(CROSS_COMPILE)strip
CFLAG = -Wall -W -Os -g -o
LIBS := -L../lib -lfcgi
LIBS += -L../lib -ltinyxml
LIBS += -L../lib -lOnvif -lpthread
LIBS += -L. -lstdc++
INCLUDE = -I ./ -I ../include -I../include/fcgi -I../include/Ctinyxml2
out-dir = /var/lighttpd/www
TARGET = MAINONVIF.fastcgi
UserInterface := UserInterface
COMM_SRC := $(wildcard *.c) $(wildcard $(UserInterface)/*.c)
COMM_OBJ := $(COMM_SRC:%.c=%.o)
.PHONY : all install clean
all: $(COMM_OBJ)
$(CC) $^ -o $(TARGET) $(LIBS) $(INCLUDE)
@$(STRIP) --strip-unneeded $(TARGET)
$(COMM_OBJ):%.o:%.c
$(CC) -c $< $(CFLAG) $@ $(LIBS) $(INCLUDE)
install:
rm -rf $(out-dir)/MAINONVIF.fastcgi
cp -rf MAINONVIF.fastcgi $(out-dir)
clean:
rm -rf $(COMM_OBJ)
</pre><pre name="code" class="plain">
解析:
@$(STRIP) 是使用 strip &n

本文分享了如何使用makefile编写编译动态库和静态库的技巧。动态库编译需添加-fPIC和-shared参数,可以控制导出接口。静态库编译涉及.o文件打包,并注意静态库依赖顺序。
最低0.47元/天 解锁文章
1148

被折叠的 条评论
为什么被折叠?



