Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ LNK2005-已定义对象_C++ - Fatal编程技术网

C++ LNK2005-已定义对象

C++ LNK2005-已定义对象,c++,C++,我有两个.cpp文件和一个.h文件: #include <iostream> #include <string> #include <vector> namespace characters { using namespace std; class character{ public: void info_character(); //... }; } 它会导致错误: 错误1错误LNK2005:公用:

我有两个.cpp文件和一个.h文件:

#include <iostream>
#include <string>
#include <vector>

namespace characters
{
    using namespace std;
    class character{
    public:
        void info_character();
    //...
    };
}
它会导致错误:

错误1错误LNK2005:公用:无效\uuu此调用 characters::character::info\u charactervoid ?信息_character@character@字符@@QAEXZ已在中定义 机械师


如何修复?我想将头文件添加到所有.cpp文件中?

您应该确保包含的文件不包含character::info_character的实现,除非您使用的是内联实现,而您的摘录没有

移动此代码

void character::info_character()
{
   ...
}

到其中一个.cpp文件。

上面引用的标题是否完整,至少缺少包含防护装置的标题?错误消息看起来好像在标头中定义了characters::character::info_character。。。或者您无意中包含了.cpp文件。另一种可能是Mechanics.obj的依赖项没有正确跟踪,这是早期版本的遗留问题。请尝试清理项目并重新生成。是否确实没有从任何内容中包含两次标题?它似乎没有包含守卫,而且确实应该包含。您不可能从发布的代码中获得此错误。这是一个链接器错误,由于您的代码无法编译,因此不可能达到链接阶段。我不知道为什么由于示例代码不完整而将其标记为关闭。很明显,OP没有发现问题,但症状足以引发问题。
void character::info_character()
{
   ...
}