命名空间内的变量LNK2001错误
Error LNK2001 with variables inside namespace
我有 2 个文件:
-
第1.H层
-
第 1 层.cpp
在 tier1.h 中,我有:
//code
namespace variab
{
int x...; float tpl...; //etc
}
namespace universal
{
using namespace variab;
//some functions prototypes
}
在第 1 层中.cpp定义了函数。一些函数位于无限制的命名空间中,例如:universal::extG::。这些函数使用在 variab 命名空间中找到的变量。
在要找到 main 的源文件中,包含 tier1.h。
当我尝试编译程序时,它给了我指向在 variab 命名空间中找到的变量的错误。错误在任何地方都是一样的。这是它的外观:
error LNK2001: unresolved external symbol "int * variab::st" (?st@variab@@3PAHA)
问题出在哪里?
在头文件中,您将声明命名空间中的变量。您只需使用 extern
关键字声明它们:
namespace variab
{
extern int x;
extern float tpl;
// etc...
}
然后在源文件中执行定义:
namespace variab
{
int x;
float tpl;
// etc...
}
相关文章:
- 为什么我的 heap.h 文件给我一个LNK2001错误?
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- 使用模板成员函数时出现LNK2001错误
- 错误 LNK2001:未解析的外部符号"private: static class Game Game::game_"
- LNK2001尝试将我的主函数分离为主.cpp时,我有一个奇怪的错误
- C++、错误LNK1120和LNK2001中未解析的外部符号
- 错误 LNK2001:VS2017 中未解析的外部符号___iob_func
- 使用外部变量会导致"unsigned char"错误LNK2001
- Dlib错误LNK2001未解析的外部符号
- VTK / ITK/ QT - 未解决的外部符号错误 (LNK2001)
- 互联网引起链接器错误lnk1120和lnk2001
- 使用boost::numpy时LNK2001错误
- LNK2001在X64环境中的编译代码上看到的错误.但是,该代码在X86环境中填充了罚款
- 我如何使用Bullet Physics SDK在VS2015中清除错误LNK2001
- LNK2001带有静态属性和方法的错误(QT,C )
- LNK2001:我的提升库(可能)构建错误
- 初始化 QList<MyStruct> 作为静态类成员给出LNK2001错误
- 命名空间内的变量LNK2001错误
- 使用 PCL 的广度第一迭代器时LNK2001错误