c++ - 讨厌的链接错误

标签 c++ visual-studio-2010

我使用的是 visual studio 2010,我认为我遇到了项目设置问题。我有一个头文件,里面有一些声明:

定义.h

#include <string>

struct myStruct
{
    std::string x[4];
    std::string y[8];
};

void InitializeStructData();

extern myStruct data[12];

cpp 文件初始化我的结构:

定义.cpp

#include "definitions.h"
#include <string>

mySturct data[12];

void InitializeStructData()
{
    data[0].x[0] = "a";
    data[0].x[1] = "b";
    ....
    data[0].y[0] = "a";
    ....
    ....
    data[11].y[7] = "done initializing"';
}

我有一个表单,其中包含一些按钮和内容,我根据不同的情况从数组中填充文本:

我的表格.cpp

#include "definitions.h"

... 

//form initialization

只要我有两个 #include "definitions.h" 语句,我就会收到链接错误:

Error   1   error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > * Definitions" 
Error   2   error LNK1169: one or more multiply defined symbols found

最佳答案

您的问题缺少重要部分。

您在 header 中有一个 std::string* Definitions,但您忘记使用 extern

关于c++ - 讨厌的链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5943124/

相关文章:

c++ - this 指针和成员函数地址

c++ - C++中的类型是什么?

c++ - 无法识别的类型 - 'Error: Variable "[var-name ]"is not a type name'

asp.net-mvc - 为什么 Visual Studio 代码格式不能正常用于 Razor 标记?

c++ - boost::mpi 阻塞 IO 不会被 linux 信号中断

c++ - 为什么我不能将两个不同的比较器传递给一个模板函数?

c++ - 使用 Awesomium 在 DirectX 窗口上渲染(半透明和圆形元素)

c++ - 可以使用cmake设置VC调试选项中的命令参数

c++ - VS 2010 中首选的多线程方法/库?

c# - Windows 服务启动然后立即停止