现在继续我需要更改现有Makefile的表示。
目前我正在使用:
~/Linuz/src: 1.c, 2.c, 3.c ... ~/Linuz/inc: abc.h, xyz.h
和makefile在: ~/Linuz/some_other_dir/
但需要改变结构。
有什么建议 ??
我的makefile看起来像这样:
all: Library.a %.o: ../src/%.c $(CC) $(CFLAGS) -I../inc/ -c -o $@ $^ Library.a: $(SRC_DIR)/1.c $(SRC_DIR)/2.c $(SRC_DIR)/3.c $(SRC_DIR)/4.c $(SRC_DIR)/5.c $(CC) $(LDFLAGS) -o $@ $^ all: prog %.o: ./*.c $(CC) $(CFLAGS) -ILibrary.a -c -o $@ $^ prog: $(APP_DIR)/app1.c $(APP_DIR)/app2.c $(APP_DIR)/app3.c clean: rm -f *.o my_program
假设您的代码体系结构如下所示:
└── linuz ├── app │ ├── app1.c │ ├── app2.c │ └── app3.c ├── bin ├── inc │ └── any.h ├── some_other_dir │ └── Makefile └── src ├── 1.c ├── 2.c └── 3.c
所以你的Makefile可能是:
all: ../bin/libmy_lib.a ../bin/my_program ../bin/my_lib_%.o: ../src/%.c $(CC) $(CFLAGS) -I../inc -c -o $@ $^ ../bin/libmy_lib.a: ../bin/my_lib_1.o ../bin/my_lib_2.o ../bin/my_lib_3.o ar rcs $@ $^ ../bin/my_app_%.o: ../app/%.c $(CC) $(CFLAGS) -I../inc -c -o $@ $^ ../bin/my_program: ../bin/my_app_app1.o ../bin/my_app_app2.o ../bin/my_app_app3.o ../bin/libmy_lib.a $(CC) $(LDFLAGS) -L../bin/ -lmy_lib -o $@ $^ clean: rm -f ../bin/*.o ../bin/libmy_lib.a ../bin/my_program
有关说明,请参阅上一个问题
以上就是c/c++开发分享如何编写makefile来生成目标文件和可执行文件在不同的目录中?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/522431.html