EXTERN为const char * const的SOME_CONSTANT给我链接错误(exte

2019-07-20 05:10发布

我想提供一个字符串,像这样的API在不断:

extern const char* const SOME_CONSTANT;

但是,如果我在静态库的源文件定义它

const char* const SOME_CONSTANT = "test";

链接针对库时使用SOME_CONSTANT我得到了链接错误:

错误1个错误LNK2001:(?SOME_CONSTANT @@ 3QBDB)解析外部符号 “字符常量* const的SOME_CONSTANT”

除去这两个指针常量性(第二const关键字) extern const char* const声明和定义,使其正常工作。 我如何指针常量性出口吗?

Answer 1:

这个问题可能是该extern声明不是源代码文件中定义的常量可见。 试着重复上面的定义声明,如下所示:

extern const char* const SOME_CONSTANT;  //make sure name has external linkage
const char* const SOME_CONSTANT = "test";  //define the constant


Answer 2:

最有可能你忘了,包括在实现文件的标题

反正关键字添加extern的定义

没有extern声明它具有内部连接,并且因此不给链接器可见



文章来源: extern const char* const SOME_CONSTANT giving me linker errors