c/c++语言开发共享如何编写makefile来生成目标文件和可执行文件在不同的目录中?

现在继续我需要更改现有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

      (0)
      上一篇 2020年12月10日
      下一篇 2020年12月10日

      精彩推荐