gcc -l参数出现在命令行中顺序问题导致的“undefined symbol“问题

原有的编译命令(他方提供):

shell 复制代码
gcc -shared -fpic -o libaqrng.so -I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/linux" -L. -lxtqrngop  aqrng.c

编译成功, 将生成的libaqrng.so放到/usr/lib, jni引用报错:

ldd -r查看:

最终查到的有效资料:

所以是因为-lxtqrngop这个库引用参数在使用该库的源码文件aqrng.c之前, 导致链接器认为该库是无用的并舍弃, 最终导致的"undefined symbol"问题.

修正后的编译命令:

shell 复制代码
gcc -shared -fpic  aqrng.c -o libaqrng.so -I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/linux" -L. -lxtqrngop

使用新编译的库后:

调用成功.

引用: https://www.cnblogs.com/ezrealiu/p/the-order-of_-l-option-in-gcc-command.html

相关推荐
sycmancia5 分钟前
C++——C++中的类型识别
开发语言·c++
我星期八休息9 分钟前
深入理解哈希表
开发语言·数据结构·c++·算法·哈希算法·散列表
一叶落43816 分钟前
LeetCode 54. 螺旋矩阵(C语言详解)——模拟 + 四边界收缩
java·c语言·数据结构·算法·leetcode·矩阵
最初的↘那颗心20 分钟前
Prompt 工程实战:五要素框架与 Spring AI 模板化落地
java·大模型·prompt工程·spring ai·ai应用开发
试试勇气21 分钟前
Linux学习笔记(十七)--线程概念
linux·笔记·学习
寻寻觅觅☆25 分钟前
东华OJ-进阶题-19-排队打水问题(C++)
开发语言·c++·算法
LXY_BUAA25 分钟前
《嵌入式操作系统》_高级字符设备驱动_20260316
linux·运维·服务器·驱动开发
王老师青少年编程39 分钟前
2026年3月GESP真题及题解(C++二级):数数
c++·题解·真题·gesp·数数·二级·2026年3月
superkcl202241 分钟前
C++初始化列表
开发语言·c++
biter down1 小时前
C++设计一个不能被拷贝的特殊类
开发语言·c++