|
|
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那样进行很好的符号版本控制,并且从不或很少更改其奏鸣曲)。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
|
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 1 年前 |
|
|
Marco · PyCharm Linux系统文件上os.stat异常 1 年前 |