命名空间中的全局变量导致"未定义对"的引用

时间:2017-12-11 11:00:05

标签: c++ namespaces global-variables

我遇到的行为我无法解释。
我的问题很简单,我想在命名空间中创建一个全局变量,并在不同的模块(cpp-files)中使用它。我已经阅读了很多不同的帖子,但没有答案解决了我的问题。

test.hpp

namespace Test
{
    extern int var1;
    extern bool var2;
}

TEST.CPP

#include "test.hpp"
namespace Test
{
    int var1 = 0;
    bool var2 = false;
}

测试2.cpp

#include "test.hpp"

void somefunc(void)
{
    Test::var1 = 1;
}

关联时出错:

test2.cpp: error: undefined reference to 'Test::var1'

如果有更好的方法,请告诉我,我愿意接受。

请不要将此问题标记为重复,我已经阅读了Stackoverflow上关于此主题的所有帖子,但他们没有为我解决。

1 个答案:

答案 0 :(得分:-2)

您的开发工具或编辑器看起来有问题。尝试创建一个全新的项目,然后重试。 (不要删除编辑器的defualt头文件和项目链接。)