创建.so时绑定动态库
bind dynamic library when creating .so
我想用我自己的一些函数在 linux 上创建一个动态库 hello.so。使用ldd,它需要一些系统库,比如libstdc++.so。
我想知道是否可以修复此 hello.so 在我的计算机中创建 hello.so 时始终绑定到 libstdc++.so 的问题。因此,我可以将 hello.so 和 libstdc++.so 发送给其他人。
此致,
冯
当您制作用于分发的程序或库时
对动态库的依赖(共享库,类 unix 操作系统;
Windows 上的 DLL)您理所当然地接受它在任何
计算机受到这些运行时的相同或兼容版本可用性的限制
依赖项,即你只能分发到一个生态系统
兼容主机。那是 linux、Windows、MacOS 的基础,
android、iOS 生态系统,在其上运行良好。
是否要分发没有动态库的软件
最大限度地提高其兼容性的依赖性(甚至超越
通常需要什么)那么你必须构建它
static linkage,这样
二进制本身包含它需要执行的所有代码。去做
这成功你必须已经在你的系统上安装了静态版本
您将使用的所有库(例如 libstdc++
)
默认情况下 link 随您的工具链提供的动态版本。
除非您有一些特定的有根据的要求来交付静态
linked产品,不用担心这个。
我想用我自己的一些函数在 linux 上创建一个动态库 hello.so。使用ldd,它需要一些系统库,比如libstdc++.so。
我想知道是否可以修复此 hello.so 在我的计算机中创建 hello.so 时始终绑定到 libstdc++.so 的问题。因此,我可以将 hello.so 和 libstdc++.so 发送给其他人。
此致, 冯
当您制作用于分发的程序或库时 对动态库的依赖(共享库,类 unix 操作系统; Windows 上的 DLL)您理所当然地接受它在任何 计算机受到这些运行时的相同或兼容版本可用性的限制 依赖项,即你只能分发到一个生态系统 兼容主机。那是 linux、Windows、MacOS 的基础, android、iOS 生态系统,在其上运行良好。
是否要分发没有动态库的软件
最大限度地提高其兼容性的依赖性(甚至超越
通常需要什么)那么你必须构建它
static linkage,这样
二进制本身包含它需要执行的所有代码。去做
这成功你必须已经在你的系统上安装了静态版本
您将使用的所有库(例如 libstdc++
)
默认情况下 link 随您的工具链提供的动态版本。
除非您有一些特定的有根据的要求来交付静态 linked产品,不用担心这个。