[英]Reference a variable in a library that's declared in a dependent application
我不记得这里有什么规则,在我的应用程序项目中,我目前在stdafx.h / cpp中声明了一个全局变量:
extern const char *LOGFILE = "test.log"
我发现一个库需要知道该变量的值。 我可以在库中向前声明它,因为它直到应用程序构建时才链接,而不会出现关于乘法定义符号的错误?
规则是:可以根据需要在任意数量的编译单元中声明 extern
变量(no =...
)(并且在任何一个中可以声明多个)。 在整个程序中,它应该只定义一次 (用=...
)。
因此,如果要编写使用此变量的库,则可以在需要该库的任何编译单元中安全地声明它:您将能够编译库对象并生成库本身而不会出错。 库中将有一个未解析的符号,如果它是共享库,则在加载时构建可执行文件时将在链接时解析。
您可以编写extern const char *LOGFILE;
(NO = ...
part)在所有来源中,或放入.h并将其包括在内。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.