Header 合并两个现有 C++ 程序时出现问题

Header issue when combing two existing C++ programs

我有一个用 C++ 编写的程序,可以编译并运行良好。我正在尝试将它与另一个使用我的程序作为函数的 C++ 程序结合起来。

而我所做的就是将我的程序作为他们程序的适应度函数。这些程序的布局如下:

http://s23.postimg.org/s3fbqsn0b/Together.png

问题是当我尝试编译它时,出现了很多错误: "x already defined in Old_Main.Obj"

所以有人告诉我关于前向声明函数并且不包括 B.Cpp 中的 A2.h。当我尝试用 gcc 编译它时,我得到: "undefined reference to x"

项目设置方法如下:

one header 中 prototype for x:

void x(int);

所有.cpp 文件包含header。

一个.cpp文件定义x:

void x(int alpha)
{
...
}

当您构建项目时,链接器将找到您对 x 的定义并解析对它的所有调用。