![](/img/trans.png)
[英]Linker Error when using the SDL Library: _main already defined in main.obj
[英]Linker error: _main already defined in *.obj
以下代码结构:
#ifndef ARRAY_STACK_H
#define ARRAY_STACK_H
#include "Array.h"
// class ArrayStack
#endif
#include "ArrayStack.h"
// ArrayStack's methods
#ifndef ARRAY_HEADER
#define ARRAY_HEADER
#include <iostream>
// class Array
#endif
#include "Array.h"
// Array's methods
#include "ArrayStack.h"
int main() {
return 0;
}
产生这些错误:
LNK1169 找到一个或多个多重定义的符号
LNK2005 _main 已在 Array.obj 中定义
这里有什么问题? 请注意,当Array.cpp
首次包含在项目中时,它本身确实定义了int main()
,但不再有它( ArrayStack.cpp
也没有)。 此外,当main.cpp
的int main()
被省略时,代码编译得很好......
该错误消息意味着在所有编译代码中,*.obj 文件中,链接器找到了多个main()
函数。 一个显然在 main.cpp 中。
正如评论中提到的,想到的第一个解决方案是通过以某种方式删除 *.obj 文件来(强制)重新编译。
当这不会改变任何事情时,请尝试从头开始单独重建您的解决方案。 从没有包含的 main.cpp 开始。 然后连续添加您确信不会出错的文件。 也许你必须在某些情况下注释掉一些行才能使编译成为可能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.