c++ - 符号已定义
问题描述
有2个这样的简单文件:
主要.c:
#include "Initialization.cpp"
int main() {
return 0;
}
和初始化.cpp:
int main2() {
return 0;
}
我收到错误消息:
..."int __cdecl main2(void)" (?main2@@YAHXZ) already defined in Initialization.obj...
当我第一次遵守程序时,一切都很好,这很奇怪。重新编译后,此错误开始出现。
PS。我正在使用 Visual Studio c++ 2019
解决方案
预处理器将包含文件中的所有内容复制到Main.c
其中
int main2() {
return 0;
}
int main() {
return 0;
}
两者Initialization.o
和Main.o
现在都有
main2()
. 因此,您打破了单一定义规则并调用未定义的行为。
推荐阅读
- php - Laravel 6:在仍登录时删除用户
- php - 用户从支付网关重定向回网站后 CodeIgniter 会话数据丢失
- javascript - 在轮播中更改幻灯片的问题,仅用 js 和 css 编写
- reactjs - 承诺中的 setInterval,在 React 中只执行一次
- php - 是否可以编辑和编写现有的 PDF 文件?
- jar - 如何打开 edumips.jar?
- javascript - 如何更改数组中最后一个索引的内容?
- firebase-realtime-database - 如何将用户数据库复制到 Firbase 中的永久数据库
- python - 如果 __init__ 中出现问题,如何防止调用方法?
- javascript - 变量上的 JavaScript 事件循环操作是否阻塞?