首页 > 解决方案 > 在多文件项目中重新定义“int main()”。C++

问题描述

刚开始写一个多文件项目,但是当我添加标题时,它给了我这个错误:

5   5   Source Code\lib.cpp [Error] redefinition of 'int main()'
3   0   Source Code\bridge.h    In file included from Source Code\bridge.h
5   5   Source Code\liberty.cpp [Note] 'int main()' previously defined here

这是项目文件编号 1 的代码

库文件

#include <iostream>
#include <String>
#include "bridge.h"

int main()
{

using namespace std;
cout << "Wazzup" << endl;


}

这是头文件的代码

桥接器

#ifndef BRIDGE_H
#define BRIDGE_H
#include "lib.cpp"
#include "variable.cpp"





#endif

最后是最后一个文件...

变量.cpp

#include <iostream>
#include <String>
#include "bridge.h"

int i;

标签: c++

解决方案


你的文件不会#include lib.cpp

完全按照编译器看到的方式阅读您的源代码: lib.cpp包含bridge.h,其中(错误地......)再次包含lib.cpp!所以它现在正在重新阅读它现在正在阅读的相同源代码!

(你也有同样的“吃掉尾巴”的问题variable.cpp!)

一般来说,.h文件应该只包含其他.h文件,而不是任何可执行代码文件。


推荐阅读