- 我正在尝试编译netsnmp mib并扩展snmp代理的功能。
当我尝试启动守护程序并加载共享对象(* .so)时,守护程序会抱怨未定义的符号。 “dlopen失败:Filename.so:未定义的符号:netsnmp_container_table_row_extract”
进一步刺激#nm -D -u Filename.so打印出许多未定义的引用/符号
其中一些引用是system calls
特定于snmp代理的。
编译代码时没有任何问题。所有缺少的引用/符号都是对netsnmp代理的调用。
问题: 1.如何在不解析这些符号的情况下编译? AFIK:这些符号必须是静态解析的。 2.我认为系统无法在运行时解决这些问题? 3.我怎么能克服这个问题?任何建议
由于 S.S
答案 0 :(得分:1)
如果符号来自另一个库,则应在编译时链接它。如果符号来自主应用程序,则应将应用程序与--export-dynamic
链接。