c++ - 在多文件项目中重新定义“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;
解决方案
你的头文件不会#include lib.cpp
。
完全按照编译器看到的方式阅读您的源代码: lib.cpp
包含bridge.h
,其中(错误地......)再次包含lib.cpp
!所以它现在正在重新阅读它现在正在阅读的相同源代码!
(你也有同样的“吃掉尾巴”的问题variable.cpp
!)
一般来说,.h
文件应该只包含其他.h
文件,而不是任何可执行代码文件。
推荐阅读
- oracle - 从 UPDATE 子查询调用 Oracle 关联数组会导致 PLS-00201 错误
- php - 显示包含所有类别列表的 ACF 类别分类字段
- rust - 在 Rust `Default` 实现中只设置一个字段
- python - 熊猫无法使用公式从单元格中获取值
- cookies - 邮递员 - 如何在没有任何 cookie 的情况下使用 pm.sendRequest?
- optimization - 在 Julia 中使用 Nelder Mead 算法时出现域错误
- arrays - 使用不打印值的 int 函数从数组中返回最大数
- python - 在 windows 终端中打开特定的图像路径并运行 script.py
- python - 为什么将列表转换为字典在 python 中不起作用?
- python - 在 Python 中使用具有 NaN 列的 mplfinance 绘制财务图