2

実行時にプラグインとしてロードされる動的ライブラリを作成しています。実行時に、ライブラリのロードに失敗し、次のメッセージが表示されます。

dlerror:/path/to/so: undefined symbol: fstat

動的ライブラリは、libsodium. 図書館で使われてlibsodiumいる唯一の場所を突き止めました。fstat()

私が理解しているように、fstat()の一部である必要がlibcあり、追加のライブラリをインストールする必要はありません。私は何が欠けていますか?

EDIT1:へのリンクがほとんどの機能とどのように異なるかについての追加情報fstat()を見つけましたが、それが私の状況にどのように適用されるか正確にはわかりません。ディストリビューション用に提供されたメイクファイルを使用してコンパイル/リンクlibsodiumしています。動的ライブラリは、その回答で推奨されているコンパイラ ドライバーでコンパイルされています。

EDIT2: CMake によって生成されたリンカー コマンドは次のとおりです。

/usr/bin/c++ -fPIC -O3 -DNDEBUG  -rdynamic -nodefaultlibs -undefined_warning -fPIC -fvisibility=hidden -shared -Wl,-soname,lin.xpl -o src/xplane_plugin/lin.xpl src/path/to/object/file1.cpp.o src/path/to/object/file2.cpp.o src/plugin/libplugin.a  /usr/local/lib/libpng16.a  -lz  src/plenty/of/dependencies.a  lib/glew/libglew.a  src/another/library.a  /usr/local/lib/libsodium.a  /usr/lib/x86_64-linux-gnu/libcurl.so  lib/json11/libjson11.a  -lpthread  deps/some/library.a  /usr/local/lib/libzip.a  -lbz2  -llzma  -lssl  -lcrypto  -lstdc++fs  -lz
4

0 に答える 0