【发布时间】:2013-03-08 22:46:25
【问题描述】:
我正在尝试将我自己的共享库 (libmystuff.so) 与另一个使用 libcurl 共享库的共享库 (libtheirstuff.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
【问题讨论】:
-
这可能是您链接库的顺序吗?
-
我只链接一个库。请参阅编辑以了解对 gcc 的调用。
-
看起来其他人也有类似的问题。也许需要使用另一个版本的 curl 库,与他们的库兼容。
标签: c linux gcc curl cross-compiling