我对 LNK2001 有疑问:未解决的外部符号错误。它仅在我的命名空间中有所有类并引用我使用多个文件的全局变量时才显示。这是我的代码的示例代码:
引擎.h
#pragma once
namespace Engine{
#include "Core.h"
#include "Display.h"
#include "Box.h"
// ... some code...
}
using namespace Engine;
核心.cpp
#include "Engine.h"
// ...some code...
核心.h
extern Matrix matrix;
// ... some code...
显示.cpp
#include "Engine.h"
Matrix matrix;
// ... some code...
显示.h
// ... some code...
盒子.cpp
void Box::draw(PxShape *shape){
// matrix=.. some code...
}
盒子.h
// ... some code...
错误信息
1>Box.obj : 错误 LNK2001: 无法解析的外部符号“struct Engine::Matrix Engine::matrix” (?matrix@Engine@@3UMatrix@1@A)
当我评论命名空间时,一切正常。这是我第一次想使用命名空间,但我不知道该怎么做。