我有一个头文件(仅)constants.h,我在其中定义了所有常量变量,以便稍后在库中使用。但是,有一个变量,我想在实现文件中定义运行时。我试图做这样的事情:
常量.hpp
extern const unsigned int numTests;
run.cpp 中的其他地方
const unsigned int numTests = 10;
然后,另一个文件 tester.cpp 使用
if ( n < numTests) {
// do something
}
现在,当我编译它时,我在 tester.o 中得到一个链接器错误,因为未定义符号 numTests。我有点理解为什么会发生这种情况:tester.cpp 包含 constants.hpp 而不是 run.cpp,因此,它找不到在 run.cpp 中初始化的常量 numTests。
有没有更好的方法呢?
TIA,尼基尔