繁体   English   中英

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

[英]Linker error: _main already defined in *.obj

以下代码结构:

数组堆栈.h

#ifndef ARRAY_STACK_H
#define ARRAY_STACK_H
#include "Array.h"
// class ArrayStack
#endif

ArrayStack.cpp

#include "ArrayStack.h"
// ArrayStack's methods

数组.h

#ifndef ARRAY_HEADER
#define ARRAY_HEADER
#include <iostream>
// class Array
#endif

数组.cpp

#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.cppint main()被省略时,代码编译得很好......

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

正如评论中提到的,想到的第一个解决方案是通过以某种方式删除 *.obj 文件来(强制)重新编译。

当这不会改变任何事情时,请尝试从头开始单独重建您的解决方案。 从没有包含的 main.cpp 开始。 然后连续添加您确信不会出错的文件。 也许你必须在某些情况下注释掉一些行才能使编译成为可能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM