使用带有两个cpp文件和标头c ++的extern

时间:2014-04-08 13:16:07

标签: c++ global-variables extern variable-declaration

我在一个visual studio 2010 c ++项目中有两个cpp文件和一个头文件,我想通过使用extern将一个cpp文件中定义的ustring变量链接到另一个。

这是我现在的代码

\\Tmp.h 
\\Declare tmp_user and tmp_pass
extern ustring tmp_user;
extern ustring tmp_pass;



\\TmpOne.cpp
\\define tmp_user and tmp_pass
#include "Tmp.h"
ustring tmp_user = username;
ustring tmp_pass = password;



\\TmpTwo.cpp
\\use the defined variables
#include "Tmp.h"
login(tmp_user, tmp_pass)
{
    \\some function
}

执行此操作时,我的TmpTwo.cpp文件中出现链接器错误。

error LNK2001: unresolved external symbol "class ustring tmp_user" (?tmp_user@@3Vustring@@A)

error LNK2001: unresolved external symbol "class ustring tmp_pass" (?tmp_pass@@3Vustring@@A)

如果我在TmpTwo.cpp文件中定义tmp_user和tmp_pass,我只会得到两个单独的空文件。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

这里有一些问题。首先,这不是你正在使用的代码。评论以//而不是\\开头。但假设它接近问题就是你已经声明存在usernamepassword,但你实际上并没有在任何地方实例化它们。

您的cpp个文件之一需要包含以下内容:

ustring username;
ustring password;