error LNK2005,错误的原因?
#ifndef __STUCT_CPP__
#define __STUCT_CPP__
struct ShareInfo : public TListObj
{
int packetNo;
int hostCnt;
int fileCnt;
public:
ShareInfo(int packetNo = 0);
void LinkList(ShareInfo *top);
};
ShareInfo::ShareInfo(int _packetNo)
{
}
void ShareInfo::LinkList(ShareInfo *top)
{
}
#endif
由于STDAFX.H被多次引用所以会出现error LNK2005的重定义错误。但是为什么如果将方法定义成inline的就不会出现错误呢?
struct ShareInfo : public TListObj
{
int packetNo;
int hostCnt;
int fileCnt;
public:
inline ShareInfo(int packetNo = 0);
inline void LinkList(ShareInfo *top);
};
相关推荐
LNK2005错误
### LNK2005 错误解析及解决方法#### 一、LNK2005 错误概述LNK2005 错误是 Microsoft Visual Studio 编译器链接过程中常见的一种错误类型,它通常发生在多个源文件或对象文件中定义了相同的全局变量或函数时
error LNK2005: 在 XXX.obj 中定义了重复符号/fatal error LNK1120: 无法解析的外部命令 C/C++
当出现"error LNK2005"错误时,意味着在链接过程中,存在重复定义的符号。多个源文件中包含了相同的全局变量或函数定义。头文件中包含了函数的实现,而不仅仅是函数的声明。// 文件1.cpp// 文件2.cppreturn 0;在上面的示例中,我们在两个不同的源文件中定义了名为的全局变量。这将导致"error LNK2005"错误,因为链接器无法确定应该使用哪个定义。将全局变量定义放在头文件中,并在需要使用它的源文件中进行声明。这样做可以确保每个源文件只有一个定义。
解决error LNK2005 void __cdecl operator delete(void
标题中的“error LNK2005 void __cdecl operator delete(void)”是一个常见的链接错误,它在C++编程中出现,通常涉及到多库编译时的符号重定义问题。
解决报错LNK2005:symbol already defined和LNK1169:one or more multiply defined symbols
"这篇文章主要介绍了如何解决在编程过程中遇到的LNK2005和LNK1169错误,这两个错误通常出现在链接阶段,表示符号已经被定义过或者存在多个重复定义的符号。"在使用Visual C++进行编
vc中error LNK2001 resolved external symbol _WinMain@16的解决方法
#### 二、产生这个问题可能的原因该错误产生的原因主要有以下几点:1. **使用了错误的入口函数**: - 当你在VC中创建了一个控制台程序时,默认的入口函数应为`main`。


