1

- 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. どうすればこの問題を解決できますか? 助言がありますか

ありがとうSS

4

1 に答える 1

1

シンボルが別のライブラリからのものである場合は、コンパイル時にそのライブラリに対してリンクする必要があります。シンボルがメインアプリケーションからのものである場合、アプリケーションは。とリンクする必要があります--export-dynamic

于 2010-05-27T18:39:46.640 に答える