[caffe问题记录]undefined symbol: _ZN5caffe3NetIfEC1ERKSsNS_5PhaseEPKS1_

caffe问题记录

一段时间没用caffe跑模型, 训练的时候报错.

Error:…/caffe/python/caffe/_caffe.so:undefined symbol: ZN5caffe3NetIfEC1ERKSsNS_5PhaseEPKS1

查了查遇到同样问题的人也比较少, 找到stack的这个链接比较有用:Link

解决方法翻译过来就是:

目录caffe-rc3/build/lib不在查找动态加载器(加载动态库)的标准库搜索路径中.

这个问题基本上有四种解决方案:
1.将库(和头文件)安装到系统目录中, 系统加载程序查找库,然后重新编译.

2.编辑/etc/ld.so.conf , 将目录caffe-rc3/build/lib加到程序查找的路径中, 然后执
行ldconfig.

3.修改环境变量LD_LIBRARY_PATH, 使包含caffe-rc3/build/lib , 很少有人推荐这个解决方案.

4.修改构建命令, 以便链接器将正确的路径嵌入到可执行文件中的库中. 这必须通过在链接器命令行中添加-Wl,-rpath,caffe-rc3/build/lib来完成, 在IDE-Eclipse项目设置中设置.

1,4两条适用于IDE, 所以尝试了2,3方法, 并没有解决问题.

无果后决定重编译caffe(…hhhh)

make all 和make test没问题, 结果make runtest时又报了这个问题:

.build_release/tools/c

### 回答1: 这是一个编程错误,意味着缺少一个名为"_zn6caffe26detail37_typemetadatainstance_preallocated_32e"的符号。这可能是由于未能正确链接或编译代码库导致的。 ### 回答2: 这是一个C++中的符号未定义错误,通常在使用第三方库或框架时出现。在本例中,符号名为_zn6caffe26detail37_typemetadatainstance_preallocated_32e。 这个错误的意义是,编译器无法找到该符号的定义。这可能是因为编译器无法找到符号的实现,或者库文件并未正确链接到代码中。 为了解决这个问题,可以尝试以下步骤: 首先,确认安装了所需的库和依赖项。在某些情况下,库文件可能需要手动下载或安装。确保库文件路径正确,并且库文件名与代码中使用的相同。 其次,检查编译器参数或Makefile文件是否正确设置。在Makefile文件中,使用静态或动态链接库选项来确保库已被正确链接到代码中。 如果以上方法都没有解决问题,可以尝试重新编译代码或重新安装库文件。 最后,如果这些方法都未能解决问题,可以考虑咨询开发社区或库的维护者以获取更多帮助。他们可能能够提供更具体的解决方案或指引。 ### 回答3: 这是一个编译错误,指出在编译程序时缺少某个符号(symbol)。一个符号是一个标记,代表一个特定的函数、变量或其他类型的标识符,编译程序需要知道符号的定义才能正确编译代码。 在这种情况下,错误信息指出缺少名为“_zn6caffe26detail37_typemetadatainstance_preallocated_32e”的符号。这个符号是与Caffe深度学习框架相关的,它可能被Caffe的某个部分使用或者引用。 造成这个问题的原因可能是Caffe依赖的库或者头文件没有正确安装或者配置。解决这个问题的方法可能是重新安装Caffe依赖的库或者头文件,或者检查编译选项以确保正确地链接所有必需的库和头文件。 另一个可能的原因是在编译Caffe时使用了错误的编译器或者编译选项。例如,如果使用了不兼容C++11标准的编译器,可能会导致这种类型的错误。在这种情况下,解决问题的方法可能是使用兼容C++11标准的编译器或者更改编译选项。 总之,这个错误是由缺少一个特定的符号引起的,解决这个问题需要确定哪个符号缺失,并检查Caffe的依赖项、编译器、编译选项等可能影响符号引用的因素。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值