2

libcurl 共有ライブラリを使用する別の共有ライブラリ (libtheirstuff.so) に対して自分の共有ライブラリ (libmystuff.so) をクロスコンパイルしようとしていますが、次のエラーが発生します。

libmystuff.so: No symbol version section for versioned symbol 
'curl_global_init@@CURL_OPENSSL_3'

その後、次のようになります。

final link failed: Nonrepresentable section on output.

libtheirstuff を作成するコードを調べると、curl_global_init が curl への最初の参照であることがわかります。

ターゲット プラットフォーム ( arm5 ldd libtheirstuff.so) で実行すると、すべての参照を見つけることができることがわかります。

何が起きてる?

編集:gccへの呼び出しは次のとおりです

arm-none-linux-gnueabi-gcc -fPIC -c mystuff_impl.c -o mystuff_impl.o -I/home/me/arm/include
arm-none-linux-gnueabi-gcc -shared -Wl,soname=libmystuff.so -o libmystuff.so.0.1 mystuff_impl.o -L/home/me/arm/lib -ltheirstuff
4

2 に答える 2