命名空间中的全局变量会导致"undefined reference to"



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

test.hpp

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

test.cpp

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

test2.cpp

#include "test.hpp"
void somefunc(void)
{
    Test::var1 = 1;
}

错误时链接

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

如果有更好的方法可以做到这一点,请让我知道,我为此开放。

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

看起来您在开发工具或编辑器上遇到问题。尝试创建一个全新的项目,然后重试。(请勿删除编辑的错误标头文件和项目链接。)

相关内容

  • 没有找到相关文章