1
3
为什么不静态链接呢? 我以前在Ubuntu上的构建和Rhel上的部署中都做过这样的工作,使用静态构建也很好。 |
2
5
这里有一些背景来解释链接的内容。在ELF平台上,传递的-l和-l标志只在链接时定位二进制文件。如果链接器链接器确定需要一个库,它将在该二进制文件中生成对SONAME的引用,而不管它被称为什么。例如: $ objdump -p /lib64/libbz2.so.1 | grep SONAME SONAME libbz2.so.1 因此,不管libbz2的名称是什么,它都将显示为依赖项。再一次举个例子,做一些完全糟糕的事情: $ ln -s /lib64/libbz2.so.1 libblah.so $ g++ t.C -L. -l blah 你有一种与libblah联系在一起的感觉,但是因为它的奏鸣曲在二进制中很重要,你的依赖仍然是libbz2.so.1。 $ ldd a.out | grep bz2 libbz2.so.1 => /lib64/libbz2.so.1 (0x00002b3d1a000000) 除了静态的诡计(可以用有趣的方式破坏事物),没有一个简单的方法可以摆脱混乱(理想情况下,库可以像glibc那样进行很好的符号版本控制,并且从不或很少更改其奏鸣曲)。 |
CaTx · 使用带有一个大于号和两个大于号的回波的区别 2 年前 |
Ari157 · x86_64 Linux程序集中的逻辑与实现 2 年前 |
Ty Q. · 分段故障GLFW3/GLAD 2 年前 |
ShortArrow · 如何使用git管理链接源文件? 2 年前 |
Bastien L. · 多Linux Grafana集成 2 年前 |