Dynamic makefile,可执行文件的大小,静态/动态
我有一个makefile,用于一个包含两个子C文件的C项目,我可以创建两个exe,一个是静态的,一个是动态的 但是静态的空间比动态的轻! 这些项目可以启动,看起来也一样 这正常吗 非常感谢,我两天后要考试,我希望我能解决这个问题:) 西蒙Dynamic makefile,可执行文件的大小,静态/动态,dynamic,static,makefile,size,Dynamic,Static,Makefile,Size,我有一个makefile,用于一个包含两个子C文件的C项目,我可以创建两个exe,一个是静态的,一个是动态的 但是静态的空间比动态的轻! 这些项目可以启动,看起来也一样 这正常吗 非常感谢,我两天后要考试,我希望我能解决这个问题:) 西蒙 CC=gcc CFLAGS=-Wall CFLAGS2=-shared CFLAGS3=-fPIC LIB___CAM_TTL=-l_projet_vision__CAM_TTL LIB_SERIAL_LINUX=-l_projet_vision_SERIAL
CC=gcc
CFLAGS=-Wall
CFLAGS2=-shared
CFLAGS3=-fPIC
LIB___CAM_TTL=-l_projet_vision__CAM_TTL
LIB_SERIAL_LINUX=-l_projet_vision_SERIAL_LINUX
CHEMIN=-L/usr/local/lib
lib_projet_vision_serial_linux.so:serial_linux.o
$(CC)$(CFLAGS2)$^-o$@
lib_projet_vision__cam_ttl.so:u_cam_ttl.o
$(CC)$(CFLAGS2)$^-o$@
lib_projet_vision_serial_linux.a:serial_linux.o
ar-rv$@$^
lib_projet_vision__cam_ttl.a:u_cam_ttl.o
ar-rv$@$^
projet\u vision\u dynamic:主\u vision.c安装
$(CC)$(CFLAGS3)$^$(CHEMIN)$(LIB\U SERIAL\U LINUX)$(LIB\U CAM\U TTL)-o$@
projet\u vision\u static:主\u vision.c安装
$(CC)$^$(CHEMIN)$(LIB\U SERIAL\U LINUX)$(LIB\U CAM\U TTL)-o$@
%.o:%.c
$(CC)$(CFLAGS)-c$<-o$@
安装:lib_projet_vision_serial_linux.so lib_projet_vision_serial_linux.a lib_projet_vision_cam_ttl.so lib_projet_vision_cam_ttl.a
sudo cp-f*.h/usr/local/include/
sudo cp-f*.so/usr/local/lib/
sudo cp-f*.a/usr/local/lib/
sudo cp项目愿景动态/usr/bin/
sudo cp项目\视觉\静态/usr/bin/
sudoldconfig
卸载:清除
sudorm-f/usr/local/include/serial_linux.h
sudo rm-f/usr/local/include/u_cam_ttl.h
sudorm-f/usr/local/lib/lib_projet_vision_serial_linux.so
sudo rm-f/usr/local/lib/lib_projet_vision__cam_ttl.so
sudo rm-f/usr/local/lib/lib_projet_vision__cam_ttl.a
sudorm-f/usr/local/lib/lib_projet_vison_serial_linux.a
sudoldconfig
清洁:
rm-f*.o*~*.so*.a
rm-f项目愿景静态项目愿景动态项目
你的问题很让人困惑,我没听懂。但我不认为install
应该是projet\u vision\u dynamic
和projet\u vision\u static
CC = gcc
CFLAGS = -Wall
CFLAGS2 = -shared
CFLAGS3 = -fPIC
LIB_U_CAM_TTL = -l_projet_vision_u_cam_ttl
LIB_SERIAL_LINUX = -l_projet_vision_serial_linux
CHEMIN = -L/usr/local/lib
lib_projet_vision_serial_linux.so: serial_linux.o
$(CC) $(CFLAGS2) $^ -o $@
lib_projet_vision_u_cam_ttl.so: u_cam_ttl.o
$(CC) $(CFLAGS2) $^ -o $@
lib_projet_vision_serial_linux.a : serial_linux.o
ar -rv $@ $^
lib_projet_vision_u_cam_ttl.a : u_cam_ttl.o
ar -rv $@ $^
projet_vision_dynamic: main_vision.c install
$(CC) $(CFLAGS3) $^ $(CHEMIN) $(LIB_SERIAL_LINUX) $(LIB_U_CAM_TTL) -o $@
projet_vision_static: main_vision.c install
$(CC) $^ $(CHEMIN) $(LIB_SERIAL_LINUX) $(LIB_U_CAM_TTL) -o $@
%.o : %.c
$(CC) $(CFLAGS) -c $< -o $@
install: lib_projet_vision_serial_linux.so lib_projet_vision_serial_linux.a lib_projet_vision_u_cam_ttl.so lib_projet_vision_u_cam_ttl.a
sudo cp -f *.h /usr/local/include/
sudo cp -f *.so /usr/local/lib/
sudo cp -f *.a /usr/local/lib/
sudo cp projet_vision_dynamic /usr/bin/
sudo cp projet_vision_static /usr/bin/
sudo ldconfig
uninstall: clean
sudo rm -f /usr/local/include/serial_linux.h
sudo rm -f /usr/local/include/u_cam_ttl.h
sudo rm -f /usr/local/lib/lib_projet_vision_serial_linux.so
sudo rm -f /usr/local/lib/lib_projet_vision_u_cam_ttl.so
sudo rm -f /usr/local/lib/lib_projet_vision_u_cam_ttl.a
sudo rm -f /usr/local/lib/lib_projet_vison_serial_linux.a
sudo ldconfig
clean:
rm -f *.o *~ *.so *.a
rm -f projet_vision_static projet_vision_dynamic