链接器错误:已在*.obj中定义_main
Linker error: _main already defined in *.obj
以下代码结构:
ArrayStack.h
#ifndef ARRAY_STACK_H
#define ARRAY_STACK_H
#include "Array.h"
// class ArrayStack
#endif
ArrayStack.pp
#include "ArrayStack.h"
// ArrayStack's methods
数组.h
#ifndef ARRAY_HEADER
#define ARRAY_HEADER
#include <iostream>
// class Array
#endif
Array.cpp
#include "Array.h"
// Array's methods
main.cpp
#include "ArrayStack.h"
int main() {
return 0;
}
生成以下错误:
LNK1169找到一个或多个多重定义符号
LNK2005已在Array.obj 中定义(_main)
这里有什么问题请注意,当Array.cpp
第一次包含在项目中时,它本身确实定义了int main()
,但现在已经没有了(ArrayStack.cpp
也没有)。此外,当省略main.cpp
中的int main()
时,代码编译得很好。。。
错误消息意味着在所有编译的代码*.obj文件中,链接器找到多个main()
函数。一个显然在main.cpp.
如注释中所述,脑海中出现的第一个解决方案是通过以某种方式删除*.obj文件来(强制)重新编译。
如果这不会改变任何事情,请尝试从头开始单独重建解决方案。从main.cpp开始,不包含include。然后依次添加您确信不会出错的文件。在某些情况下,您可能需要注释掉一些行,以使编译成为可能。
相关文章:
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- File.cpp.o:OpenPose 标志 CMakeFiles/.. 的多重定义/main.cpp.o:首先在这里定
- C++:main() 未捕获的异常的自定义格式
- C++/生成文件错误:未定义对"main"的引用
- 在命名空间中声明变量,在 main 中定义它,使其对所有其他文件可见
- 可视化 如何修复 c++ 中已经定义的 -main?
- 在 Linux 上编译 - 在函数 '_start' 中:(.text+0x20):对 'main' 的未定义引用
- C++错误:在类中取消对main的定义引用
- crt1.o:在函数"_start"中:(.text+0x20):对"main"的未定义引用
- Main.Obj中已经定义的主要
- main.cpp:(.text+0x8ea):在C++中未定义的引用
- 实用程序函数不会在 .h 文件中初始化并在 main 中定义.cpp
- C :使用Main中定义的对象方法的函数
- 已在main.obj中定义了双精度
- C++ 编译错误:- 使用Makefile对"main"进行多重定义
- C++编译错误:多个定义"main",但项目中只有一个 main 函数
- 你能定义 main() 来接受不仅仅是 argc/argv 参数吗?
- 谷歌基准自定义main
- 实现自定义Main函数
- 在类中定义main函数