当将程序与共享对象链接时,
当共享对象本身被链接时,我的共享对象引用不是已经被检查过了吗?
我可以理解在链接时找出程序是否具有启动所需的所有部件的吸引力,但是在构建软件包的上下文中似乎无关紧要,因为共享对象可能会单独分发(例如Debian的lib*软件包)。它在对不想执行构建程序的系统上引入了递归构建依赖项。
我可以相信共享对象构建时解决的依赖关系吗?如果可以,使用-unresolved-symbols=ignore-in-shared-libs构建程序时安全性如何?
ld
会确保符号可以被解析。这基本上确保了程序和其共享对象之间的接口是兼容的。阅读完Linking with dynamic library with dependencies后,我了解到ld
会进入链接的共享对象并尝试解决它们的符号。当共享对象本身被链接时,我的共享对象引用不是已经被检查过了吗?
我可以理解在链接时找出程序是否具有启动所需的所有部件的吸引力,但是在构建软件包的上下文中似乎无关紧要,因为共享对象可能会单独分发(例如Debian的lib*软件包)。它在对不想执行构建程序的系统上引入了递归构建依赖项。
我可以相信共享对象构建时解决的依赖关系吗?如果可以,使用-unresolved-symbols=ignore-in-shared-libs构建程序时安全性如何?