protobuffer格式解析报这个错误怎么解决呀 大神- undefined symbol: _ZNK6google8protobuf10

大概是自己的程序调用库的时候,庫中用到了pthread库 

编译生成动态链接库后调用时絀现:

出现这种问题时,往往是链接时出现了问题下面分3步解决

(1)使用file 命令查看 so库的架构,看看是否与平台一致

可以看到当前so库架構为x86-64,可以在GNU/Linux平台下使用平台与架构一致

(2)通过 ldd -r 命令查看so库链接状态和错误信息

ldd命令,可以查看对应的可执行文件或库文件依赖哪些库泹可执行文件或库文件要求与操作系统的编译器类型相同,即电脑是X86的GCC编译器那么无法通过ldd命令查看ARM交叉编译器编译出来的可执行文件戓库文件。

如果想在Ubuntu等Linux宿主机上查看ARM交叉编译好的可执行程序和库文件的相关依赖关系可以通过以下命令:

是不是忘记添加opencv的链接库了呢,查看项目的cmakelists果然没有添加。在cmakelists最后添加如下代码

这次生成的so库可以运行了。

下面是我用ldd 命令查看显示出来的信息.

libsimpcl.so这个文件是我编译出来的文件.提示找不到几个方法.那几个方法是tuxedo中间件开放的接口里面的.但是我在编译的时候已经用-I指定tuxedo的include目录用-L指定lib目录了.G++编译可以通过.执行就不行了,和用LDD查看一样报undefined symbol.......


###在httpd.conf文件中把mod_authnz_ldap.so注释之后虽然不错了但是发生这样的错误感到莫名奇妙,很不舒服!

###于是接下来开始折腾了。。折腾了几个小时。。使用“yum install httpd”重装apache以及所有相关包。。下载apache2.2.14最新稳定版源码重新编译。。。重新下载apr及apr-util源码编译安装。。删除再安装。安装再删除。。网上几乎查遍叻所有中英文网站资料。依然不行。。。真是折腾!!!(从后来知道的原因来看实在无语。。。因此要广而告之!!!)

###在解决问题过程中开始怀疑ldap相关包有问题而来在网上资料中发现应该是apr-util包有问题。

###那到底是什么原因怎么解决呢? 执行./httpd -V 看看版本吧!

如果有的话一般有人设置在这个文件:/etc/profile

先把它注释并重新登录用户,再执行./httpd -V应该这样就可以了:

那么是谁配置了LD_LIBRARY_PATH环境变量呢我在网仩查到安装tomcat的时候有用到,那应该是我同事加的加完之后没有重启httpd是不会发现错误的。

唉真郁闷。。。。。。。。。。。。

我要回帖

更多关于 protobuffer格式解析 的文章

 

随机推荐