首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接器错误:_main已在*.obj中定义

链接器错误:_main已在*.obj中定义
EN

Stack Overflow用户
提问于 2015-12-04 06:37:59
回答 1查看 12.7K关注 0票数 5

以下代码结构:

ArrayStack.h

代码语言:javascript
复制
#ifndef ARRAY_STACK_H
#define ARRAY_STACK_H
#include "Array.h"
// class ArrayStack
#endif

ArrayStack.cpp

代码语言:javascript
复制
#include "ArrayStack.h"
// ArrayStack's methods

Array.h

代码语言:javascript
复制
#ifndef ARRAY_HEADER
#define ARRAY_HEADER
#include <iostream>
// class Array
#endif

Array.cpp

代码语言:javascript
复制
#include "Array.h"
// Array's methods

main.cpp

代码语言:javascript
复制
#include "ArrayStack.h"
int main() {
    return 0;
}

生成以下错误:

找到一个或多个已定义的LNK1169符号 LNK2005 _main已经在Array.obj中定义

这里有什么问题?请注意,当Array.cpp第一次被包含在项目中时,Array.cpp本身就已经定义了int main(),但是现在已经不再有int main()了(ArrayStack.cpp也没有)。此外,当省略int main() in main.cpp时,代码编译得很好.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-04 08:28:40

错误消息意味着在所有已编译的代码、*.obj文件中,链接器会找到多个main()函数。其中一个明显在main.cpp中。

正如注释中提到的,想到的第一个解决方案是通过删除*.obj文件(强制)重新编译。

当这没有改变任何事情时,试着从头开始分别重建解决方案。从没有包含的main.cpp开始。然后,在您确信不会出现错误的地方,依次添加文件。在某些情况下,您可能需要注释掉一些行,以使编译成为可能。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34082336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档