Dev-C++同时编译多个C或C++文件方法

所属分类: 软件教程 / 编程开发 阅读数: 994
收藏 0 赞 0 分享

Dev-C++同时编译多个C文件:

考察多源代码文件程序的编译及头文件的使用 :
如果程序的函数 分别放在不同的程序之中,那就必须是定义常量的#define指令对于每个文件都可用:
定义一个***.h文件,存储函数原型和常量定义
需一起编译的文件添加 #include "***.h"即可

编译步骤:

1.新建一个C空白工程

2.将需要一起编译的文件添加至上述新建工程中

3.编译运行即可,C++同理

C/C++多文件编译原理

在单文件的情况下(只有一个.h和.c/.cpp)我们只需编译该文件即可,例如:

$ gcc main.c -o main

但更多的情况下,一个工程需要分开为多个源文件,比如 main.c、a.c、b.c 等,那这种情况下是如何编译的呢?首先要在 main.c 中调用 a.c 中的方法,必须包含 a.h 头文件,有了头文件中的函数声明就确保了 main.c 的函数调用的正确性。好了,现在我们执行编译多文件命令:

$ gcc main.c a.c b.c -o main

整个编译结果是这样的:编译器先把源文件见 main.c a.c b.c 独立编译为 main.obj a.obj b.obj 目标文件,然后再把其中要用到的函数方法链接到 main.obj 来,最终打包成可执行文件 main,这就是分离编译和链接原理。

如何编译由多个c++源文件组成的项目

在我写数据结构作业的时候,由于自己写了一些需要使用的数据结构,所以源文件有如下几个:
Main.cpp, Stack.cpp, Stack.h, Queue.cpp, Queue.h
但是当我在IDE中编写好源文件,想要自己来编译的时候,我发现我不会处理多个源文件的情况,查找资料后有如下解决方法:

1.在同一语句中同时编译多个源文件

g++ -Wall -g Main.cpp Stack.cpp Queue.cpp -o StackOut

生成可执行文件StackOut

在g++编译器中,-Wall是允许发出GCC能够提供的所有有用的警告的参数,-g是告诉g++产生能被GUN调试器使用的调试信息以便调试你的程序。具体各个参数的用法在这里和这里有详细说明。

2.分别编译多个源文件

g++ -Wall -g -c Stack.cpp
g++ -Wall -g -c Queue.cpp
g++ -Wall -g -c Main.cpp
g++ -g Stack.o Queue.o Main.o -o StackOut

在编译单个文件时,我试了一下,顺序是任意的。如果我修改了Stack.cpp,则:

g++ -Wall -g -c Stack.cpp
g++ -g Stack.o Queue.o Main.o -o StackOut

即可。

3.编写Makefile文件

CC = g++  
CFLAGS = -Wall -g  

all: clean Stack.o Queue.o Main.o StackOut  

Stack.o : Stack.h  
    ${CC} ${CFLAGS} -c Stack.cpp

Queue.o : Queue.h  
    ${CC} ${CFLAGS} -c Queue.cpp  

Main.o : Stack.h Queue.h  
    ${CC} ${CFLAGS} -c Main.cpp  

StackOut : Stack.o Queue.o Main.o  
    ${CC} ${CFLAGS} Stack.o Queue.o Main.o -o StackOut
clean:  
    rm -rf *.o  
    rm -rf StackOut

到此这篇关于Dev-C++同时编译多个C或C++文件方法的文章就介绍到这了,更多相关编译多个C或C++文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

更多精彩内容其他人还在看

VisualStudio2015怎么设计一个注册信息的页面?

VisualStudio2015怎么设计一个注册信息的页面?vs2015中想要设计一个注册表信息的页面,该怎么制作填写信息的表格呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

Notepad怎么显示隐藏的字符?

Notepad怎么显示隐藏的字符?Notepad++中文件都有隐藏的字符,想要显示隐藏的字符,该怎么显示呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

VS2017怎么提交作业? VS提交作业的方法

VS2017怎么提交作业?VS2017中做编程开发的时候,想要进行作业提交,该怎么提交呢?下面我们就来看看VS提交作业的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

VS2017怎么使用作业视图?

VS2017怎么使用作业视图?VS2017中想要使用作业视图,该怎么使用作业视图呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

VS2017怎么使用Web代码分析功能?

VS2017怎么使用Web代码分析功能?经常使用VS2017进行编程开发,这个软件有很多功能,今天我们就来给大家介绍Web代码分析的使用方法,需要的朋友可以参考下
收藏 0 赞 0 分享

VS2017怎么使用ADLS路径?

VS2017怎么使用ADLS路径?VS2017编程开发经常使用的软件,该怎么使用ADLS路径呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

vscode英文版怎么显示隐藏行号?

vs code英文版怎么显示隐藏行号?Visual Studio Code中编程开发的时候,想要隐藏行号,该怎么隐藏或者显示行号呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

vscode英文版怎么设置自动保存的时间?

vscode英文版怎么设置自动保存的时间?使用vscode软件的时候,为了防止意外早层的文件丢失损失,想要设置自动保存文件,下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

Sublime怎么查看最近打开的文件?

Sublime怎么查看最近打开的文件?Sublime编程开发的时候,想要打开之前打开过的文件,该怎么操作呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

Authorware多媒体课件怎么插入背景音乐?

Authorware多媒体课件怎么插入背景音乐?Authorware制作的课件需要插入音乐,该怎么插入背景音乐呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多