[英]linking to multiple versions of a static library
我的项目链接到静态库libA.a版本1。
此可执行文件还链接到另一个静态库B. B链接到A,但版本2。
A的版本1和2中的两个符号集都是相同的。 如果我知道在我的项目和B之间没有任何东西与A有任何关系,这应该可行吗?
我设法手动链接它似乎工作(也许有我不知道的陷阱)。
我不能使lib B成为共享对象,或者使用A作为共享对象。 实际上,我只知道B正在静态使用A,因为我和写过B的人谈过。
关于问题的“链接”部分,实际上静态库没有链接在一起。 仅执行链接步骤以获得最终可执行文件。
实际上,您使用A(版本2)的标头编译了静态库B. 然后,您将可执行文件与B和A(版本1)库链接。
只要两个版本的A中的符号相同,就没有编译问题。 但是你必须知道你的可执行文件实际上只嵌入并使用了A的版本1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.