我需要创建一个可移植的linux程序,它使用了许多从yum (CentOS)中定义的附加库。
禁止在便携式机器上安装新的软件包。这里没有必要的库。
如何通过gcc编译器将我的程序和所有包组装到一个文件夹中?当我把这个文件夹移到另一台机器上时,我的程序应该会启动并成功运行。
我的程序只允许使用动态库。静态库是严格禁止的。
当试图将rpath与/usr/lib64/替换为存储在我目录中的库时,在传输到另一台机器后,其他库给出错误(glibc版本冲突)。
这听起来像是一个注定要失败的项目。
静态库不是问题所在。因为它们只是.o文件的集合,所以可以解压缩它们。然后,您可以声明您刚刚链接了目标文件。愚蠢的规则产生愚蠢的结果。我在这里忽略了软件许可,但是这个问题似乎暗示了这一点。您不需要通过yum安装库的许可证,因为您不提供它们。但是,当您以某种形式将这些库作为产品的一部分发布时,您绝对需要许可证。考虑到这些愚蠢的规则,(L)GPL可能是不可能的,所以你需要为所有7个库获得商业许可证。