c - "No symbol version section for versioned symbol"

标签 c linux gcc curl cross-compiling

我正在尝试针对另一个使用 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/

相关文章:

c - 堆栈的 Pop 函数出现意外行为

c - NaN 在运行时如何保存?

c - 等到上一个进程实例完成

regex - 远程日志记录条目的 Grep 系统日志配置

c - 我的程序仅在声明额外数组时才有效

gcc - 现代编译器如何使用 mmx/3dnow/sse 指令?

C 语言 - 使用 fscanf 处理长文本文件

c++ - 逻辑/关系表达式优化

c - 为什么非阻塞写入磁盘不返回 EAGAIN 或 EWOULDBLOCK?

linux - io_uring_queue_init 权限被拒绝