如何编译一个含多个模块的 C 语言程序?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

如何编译一个含多个模块的 C 语言程序?

2016-06-07 17:57:05 1766 1

现有如下文件夹:

main/
main.c MO1/ MO2/ MO3/
其中 MO1 MO2 MO3 分别是程序的一个模块,节构都是:

MO1/
mo1.c mo11.c mo12.c mo13.c 
main.c 调用 mo1.c mo2.c mo3.c
mo1.c 又调用 mo11.c mo12.c mo13.c

暂不考虑参数传递等问题,应该如何编译呢?

取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:30:36

    你需要的是学习怎样写makefile。

    如果你是伸手党,在根目录下创建一个文件名为makefile的文件,并按照下面的方法写:

    #this is a makefile
    objects = main.o mo1.o mo2.o mo3.o mo11.o mo12.o
    compiler = gcc
    
    main: $(objects)
        $(compiler) -o main $(objects)
    clean:
        rm main *.o
    然后你只要在terminal上输入make,就编译好了;如果输入make clean,则会清空编译出来的文件:
    
    JerryMac:Dev Jerry$ make
    cc    -c -o main.o main.c
    cc    -c -o mo1.o mo1.c
    cc    -c -o mo2.o mo2.c
    cc    -c -o mo3.o mo3.c
    cc    -c -o mo11.o mo11.c
    cc    -c -o mo12.o mo12.c
    gcc -o main main.o mo1.o mo2.o mo3.o mo11.o mo12.o
    JerryMac:Dev Jerry$ make clean
    rm main *.o
    JerryMac:Dev Jerry$ ls
    main.c      mo1.c       mo12.c      mo3.c
    makefile    mo11.c      mo2.c

    如果你想要深究什么是makefile,上面那段makefile为什么这么写,以及如何写makefile。
    我推荐你阅读:跟我一起写Makefile系列

    0 0
相关问答

1

回答

C语言如何防止死循环?

2022-03-29 14:37:56 391浏览量 回答数 1

1

回答

编写一个简单的C语言程序应该包括哪些部分呢?

2022-03-29 19:06:34 234浏览量 回答数 1

1

回答

c语言数组初始化要注意哪些问题?

2022-03-29 15:01:14 307浏览量 回答数 1

2

回答

如何使用C语言中的调用函数呢?

2022-03-29 20:43:06 1272浏览量 回答数 2

1

回答

C语言如何控制循环次数?

2022-03-29 14:36:56 378浏览量 回答数 1

1

回答

以下是一个指针的具体实例,如何完成这个程序的要求呢?

2022-03-30 01:06:08 128浏览量 回答数 1

1

回答

帮忙给个简单的c语言堆排序法的程序!!

2018-07-15 12:41:05 1137浏览量 回答数 1

1

回答

c语言循环程序出错,编译器好奇怪

2016-06-07 19:47:32 1382浏览量 回答数 1

1

回答

如何跟踪静态编译程序的函数调用?

2016-06-06 09:31:01 1749浏览量 回答数 1

1

回答

C程序编译错误(小程序)

2016-03-19 14:04:32 1817浏览量 回答数 1
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载