Ste*_*vić 5 c++ linker-errors visual-studio
以下代码结构:
#ifndef ARRAY_STACK_H
#define ARRAY_STACK_H
#include "Array.h"
// class ArrayStack
#endif
Run Code Online (Sandbox Code Playgroud)
#include "ArrayStack.h"
// ArrayStack's methods
Run Code Online (Sandbox Code Playgroud)
#ifndef ARRAY_HEADER
#define ARRAY_HEADER
#include <iostream>
// class Array
#endif
Run Code Online (Sandbox Code Playgroud)
#include "Array.h"
// Array's methods
Run Code Online (Sandbox Code Playgroud)
#include "ArrayStack.h"
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
产生这些错误:
LNK1169 找到一个或多个多重定义的符号
LNK2005 _main 已在 Array.obj 中定义
这里有什么问题?请注意,当它第一次被包含在项目中时,它本身Array.cpp确实有int main()定义,但不再有它(也没有ArrayStack.cpp)。此外,当省略int main()in时,代码编译得很好main.cpp......
该错误消息意味着在所有已编译的代码(*.obj 文件)中,链接器发现了多个main()函数。其中之一显然在 main.cpp 中。
正如评论中提到的,我想到的第一个解决方案是通过以某种方式删除 *.obj 文件来(强制)重新编译。
如果这没有改变任何内容,请尝试从头开始单独重建您的解决方案。从 main.cpp 开始,不包含 include。然后连续添加您确信不会出现错误的文件。也许在某些情况下您必须注释掉某些行才能进行编译。
| 归档时间: |
|
| 查看次数: |
9428 次 |
| 最近记录: |