を使用して見ることができるプログラムを実行しているとき、私は以下のエラーが表示されます。プログラムの読み込み中にシンボルルックアップエラーが発生しました。シンボルは静的ライブラリで定義され、NM
/usr/bin/getinfo: symbol lookup error: /usr/pkl/libinfo.so: undefined symbol: GetList
この機能は、「GetList
」静的ライブラリliblist.a
で定義されている実行ファイルにリンクされていること/usr/bin/getinfo
とgccでコンパイルします。私は 'nm'コマンドを実行すると、実行可能なgetinfoにシンボルが定義されていることがわかります。ここでnmコマンドの出力です:
[email protected] $ nm /usr/bin/getinfo | grep GetList
080a3d89 T GetList
私もreadelfがコマンドを使用してチェックしており、ここでは出力です:共有ライブラリlibinfo.so
[email protected] $ readelf -a /usr/bin/getinfo | grep GetList
1080: 080a3d89 1777 FUNC GLOBAL DEFAULT 15 GetList
liblist.a静的ライブラリで定義されている機能のGetListのを呼び出します。 libinfo.so
とliblist.a
の両方が、実行可能ファイル/usr/bin/getinfo
に依存するものとしてリストされています。 liblist.a
はではなく、が依存関係として追加されましたlibinfo.so
私もobjdump -S /usr/bin/getinfo | grep GetList
を実行しており、この関数のアセンブリコードを見ることができました。ただし、プログラムを実行すると、シンボル検索エラーでクラッシュします。これは共有ライブラリの問題ではなく、解決できません。助けてください。