LNK2001未在命名空间

时间:2016-01-12 13:29:19

标签: c++ linker namespaces unresolved-external

我在命名空间中定义的两个变量有一个未解决的外部符号错误。这是我在标题和源文件中定义和声明变量的代码。

头文件

#include "States.h"

namespace acro {    
    namespace states {
        extern States_t feedback;
        extern States_t down;
    }
}

源文件

namespace acro {    
    namespace states {
        States_t feedback;
        States_t down;
    }
}

在我的主文件中,我称之为。

printf("Iteration: %lld\n", acro::states::feedback.i);

但是我收到了这个错误。

Error   LNK2001 unresolved external symbol "class States_t acro::states::feedback" (?feedback@states@acro@@3VStates_t@@A)   simple_acrophobe    C:\Users\...\main.obj   

States_t是在“Stated.h”中定义的类和“States.cpp”文件,我知道它可以工作并且正确地包含在项目中。我通过在main函数中声明一个对象来测试它。 我很确定我已经正确地包含了我的头文件和源文件。我使用Visual Studio UI创建了它们。除了标题保护和文档注释之外,这些文件中没有其他内容。

我对这里可能出现的问题已经没有了想法。

0 个答案:

没有答案