繁体   English   中英

引用在从属应用程序中声明的库中的变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM