任务:linux系统,已经生成so库,需要调用。

参考文献:

Linux 调用动态库(.SO文件)总结_linux deviceio.so-CSDN博客

可以看他的第一部分,即显式调用。但是会报错,我的版本是64位的Ubuntu 20.04.6 LTS。会发现直接用第一种方式的代码报错,dlopen函数返回是void *型指针,不能匹配原so库中调用函数的函数指针类型。解决办法是强制转换一下,可以参考这篇:

linux 调用 so_开心的活着就好的技术博客_51CTO博客

即定义一个函数指针类型,然后调用dlsym函数强制转换此类型。

linux调用so库之一-LMLPHP

这种是可以调用成功的,直接编译调用程序,生成.out文件执行即可。需要注意的是,dlopen函数打开so库时的路径需要设置为绝对路径。

02-22 01:30