我想在API中提供字符串常量,如下所示:
extern const char* const SOME_CONSTANT;
但是如果我在静态库源文件中将其定义为
const char* const SOME_CONSTANT = "test";
我在链接到该库并使用SOME_CONSTANT:
时遇到链接器错误错误1错误LNK2001:未解析的外部符号“char const * const SOME_CONSTANT”(?SOME_CONSTANT @@ 3QBDB)
从extern const char* const
声明和定义中删除指针const-ness(第二个const关键字)使其工作。如何将导出指针常量?
答案 0 :(得分:11)
问题可能是extern
声明在定义常量的源文件中不可见。尝试重复定义上方的声明,如下所示:
extern const char* const SOME_CONSTANT; //make sure name has external linkage
const char* const SOME_CONSTANT = "test"; //define the constant
答案 1 :(得分:9)
很可能您忘记在实施文件中包含标题
无论如何,将关键字extern
添加到定义
没有extern
声明它具有内部链接,因此链接器