提问人:Stellarist 提问时间:11/15/2023 最后编辑:Mark RotteveelStellarist 更新时间:11/18/2023 访问量:151
如何在 C++ 模块中使用全局变量?
How to use global variable in C++ module?
问:
当我在 C++20 项目中使用模块时,如果我有
// Camera.hpp
extern const unsigned int SCR_WIDTH;
extern const unsigned int SCR_HEIGHT;
在主.cpp中
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;
但是现在我使用模块,
// Camera.cppm
module;
#include <glad/glad.h>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
export module Camera;
// extern const unsigned int SCR_WIDTH;
// extern const unsigned int SCR_HEIGHT;
链接器似乎找不到变量,那么我应该如何修改它呢?
ld.lld: error: undefined symbol: SCR_HEIGHT@Camera
>>> referenced by CMakeFiles/triangle.dir/src/triangle2.cpp.obj:(.refptr._ZW6Camera10SCR_HEIGHT)
ld.lld: error: undefined symbol: SCR_WIDTH@Camera
>>> referenced by CMakeFiles/triangle.dir/src/triangle2.cpp.obj:(.refptr._ZW6Camera9SCR_WIDTH)
答: 暂无答案
评论
const
对于文件作用域中的变量,意味着 。虽然你可以用通常的标题来欺骗它,但它不在模块的功能范围之内。在模块中声明的 THings 应该在模块中定义。static
module;
static