【发布时间】:2011-11-07 09:39:53
【问题描述】:
我正在尝试构建一个共享对象库,该库将由使用 dlopen() 的程序打开。该库将使用由单独的静态库提供的功能。
我在链接行中包含了适当的标志,以便在链接动态库时拉入静态库(例如,我有 -lfoo 用于 libfoo.a),并且链接器不会抱怨。但是,当主程序在动态库上调用 dlopen() 时,调用会失败并显示“未定义符号”消息,该消息引用了静态库中的符号。
运行 nm 确实表明有问题的符号在动态库中未定义,并且主程序不包含它,那么我该如何强制链接器拉入这个符号呢?符号本身位于未初始化的数据部分(nm 输出中的符号类型“B”)。
【问题讨论】:
标签: gcc shared-libraries