我正在尝试针对另一个使用 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
最佳答案
链接器抓取了错误的版本。
关于c - "No symbol version section for versioned symbol",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15304627/