在第二共享库和其他应用程序中使用的静态库中共享库,Linux Tools

问题描述 投票:0回答:1

staticlib

Application1-链接与staticlib

    SharedObject-与staticlib
  • 链接
  • application2-链接与共享对象
  • 我只有staticlib.
  • 我想在staticlib上添加对第三方共享对象的依赖性。 我知道我的软件将要运行的所有机器上都存在第三方,这很好,因为我也限制了将第三方分发的许可。
  • 即将到来,只要我在每个应用程序级别告诉链接器都需要与第三方链接的链接,我就可以使它工作。 问题是双重的:我不拥有这些应用程序的构建过程,实际上我正在简化,并且有很多应用程序和SOS使用我的静态库,其中一些完全在我的组织之外,而我不喜欢t知道它们是什么。
  • 我说,我限制了分发第三方的许可,因此我看到的解决方案谈论了如何将SO折叠成静态图书馆对我不起作用;那将是分发第三方,所以我在法律上被阻止了。
有任何方法可以做这项工作吗?

随访,我的静态库的大部分用途都将通过共享对象。 如果有一种方法来制作这项工作,以便我必须为直接使用staticlibrary的少数应用程序修改构建过程,并修改共享对象的构建,但不必修改使用共享对象的应用程序的构建,可行

静态库作为GNU链接器的输入是一个简单的存档 链接器将从中复制并静态链接到输出的对象文件 准确映像这些对象文件(如果有)提供链接 带有链接中已经提到的符号的定义 但是到目前为止缺乏定义。

静态库对链接没有任何贡献,只有0或更多 从中提取的对象文件。

因此,您的问题归结为:

有一种方法,可以在其中编译一个对象文件 当输入到链接时,将指示链接器查找指定的 共享libary并将其输入链接?

gcc linker shared-libraries static-libraries
1个回答
0
投票

高级构建系统发电机(自动工具,CMAKE,MESON,BUCK等) 将使您能够以某种方式指定库时

a

这样一个顺序,构建目标将是库,

c

...。这 细节各不相同。您可能会分发这样的构建系统。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.