运行时链接动态库,报symbol lookup error: undefined symbol:错误

郎泰平
2023-12-01

在exe里调用了so的函数,运行exe时提示symbol lookup error: undefined symbol:错误,在网上查原因,一般都说是so版本可能与exe不匹配,但是我的exe和so都是新编译的,确定版本没问题,后来怀疑是不是c++编译时函数别名不一致,但是也没问题。百思不得其解,最终发现是so库命名的问题,我把so库命名为util,库编译出来是libutil.so,实际上,操作系统也有libutil.so,所以运行链接时首先找到的是操作系统的libutil.so,里面当然找不到自己定义的函数了,给so重新定义个名,重新编译,运行成功了。

 类似资料: