四时宝库

程序员的知识宝库

C++ 多文件工程的建立、编译和连接

一个工程(project)包含一个以上文件(主要是源文件),称为多文件工程。下面以Visual Studio IDE为例,说明如何建立、编译、连接。

一、在工程中添加多个文件

在Project菜单下,点击Add New Item:

在弹出的对话框中输入源文件名称:

当然,也可以选择添加已写好的文件,这样可以重复使用以前的代码。

二、多文件工程的编译和连接

看下面的工程,包含两个文件,一个是main.cpp, 还有一个是添加到工程的文件:

#include <iostream>
using namespace std;

//function forward declaration.
int add(int, int);  //parameter name is not necessary.

int main()
{
	int a = 6;
	int b = 9;
	cout << add(a, b);
	return 0;
}

编译的问题

在这个文件中,main()函数调用了一个函数add(), 但是add()定义并不在这个文件中。为了通过编译,需要在这个文件中添加add()的前置声明(forward declaration). 在前置声明中,形参的变量名可以省略,但是类型必须写明。

连接的问题

如果这个工程只包含上述一个文件,编译通过没问题,但是在连接阶段会出问题,调用函数时找不到函数的出处(即definition). 因此,需要将下列代码,以文件的形式,加入到工程(projenct)中.

int add(int a, int b)
{
	return a + b;
}

在资源管理器下面,可以看到工程中所有的文件名,下面是本工程中的两个文件:

这个时候,再按正常的流程,进行Build(编译、连接、生成exe文件)。编译的时候,编译器对各个源文件进行编译,不分现后,也不管哪个函数地定义在另外哪个文件。到了连接阶段,连接器去相关文件中找函数add()的定义,然后进行连接。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接