编译成功了,运行为什么会失败_cython编译python

编译成功了,运行为什么会失败_cython编译python编译caffe2遇到的坑最新的caffe2已经移到pytorch中去了,直接下载其中的代码然后按照官方教程就可以了。这里会遇到新的问题:make[3]:Enteringdirectory‘/home/ubuntu/caffe2-master/build’make[3]:Leavingdirectory‘/home/ubuntu/caffe2-master/build’…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

编译caffe2源码遇到的坑


最新的caffe2 已经移到pytorch中去了,直接下载其中的代码然后按照官方教程就可以了。

编译遇到的问题:

make[3]: Entering directory '/home/ubuntu/caffe2-master/build'
make[3]: Leaving directory '/home/ubuntu/caffe2-master/build'
make[3]: Entering directory '/home/ubuntu/caffe2-master/build'
[ 92%] Linking CXX executable ../bin/mpi_test
/usr/bin/ld: CMakeFiles/mpi_test.dir/mpi/mpi_test.cc.o: undefined reference to symbol '_ZN3MPI8Datatype4FreeEv'
//usr/lib/libmpi_cxx.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
caffe2/CMakeFiles/mpi_test.dir/build.make? recipe for target 'bin/mpi_test' failed
make[3]: *** [bin/mpi_test] Error 1
make[3]: Leaving directory '/home/ubuntu/caffe2-master/build'
CMakeFiles/Makefile2:2654: recipe for target 'caffe2/CMakeFiles/mpi_test.dir/all' failed
make[2]: *** [caffe2/CMakeFiles/mpi_test.dir/all] Error 2
make[2]: Leaving directory '/home/ubuntu/caffe2-master/build'
Makefile:140: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/ubuntu/caffe2-master/build'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2

Jetbrains全家桶1年46,售后保障稳定

问题出在MPI的链接问题中。

因此你需要修改的文件如下:
pytorch->caffe2->CMakefiles.txt
添加如下到最后行就可以了:

SET(CMAKE_C_COMPILER mpicc)
SET(CMAKE_CXX_COMPILER mpicxx)
include_directories(MPI_INCLUDE_PATH)
target_link_libraries(mpi_test ${MPI_LIBRARIES})

测试遇到的问题

再输入测试时候会遇到问题:
python -c 'from caffe2.python import core'
发现不能import caffe2_pb,这一步其实是因为路径存在问题。
如果你位于PATH_TO/pytorch/build
你就会发现,可以解决了,因此你需要把这个目录加载到PYTHONPATH中去。
具体方法:
echo 'export PYTHONPATH=$PYTHONPATH:PATH_TO/pytorch/build' >> ~/.bashrc
中去。然后
source ~/.bashrc
就可以了。

其中PATH_TO需要根据你自己的电脑上的目录操作。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226862.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux系统中如何进入退出vim编辑器,方法及区别

    linux系统中如何进入退出vim编辑器,方法及区别随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)在linux家族中,vim编辑器是系统自带的文本编辑器,其功能强大自不必说了。偶有小白,刚接触linux,要修改某个文本文件,不可能像WINDOWS那样操作,更有甚者,进入VI编辑器后,无法退出以…

    2022年6月12日
    33
  • mysql 提示表不存在的解决方法error: 1146: Table doesn‘t exist

    mysql 提示表不存在的解决方法error: 1146: Table doesn‘t exist直接拷贝数据库导致提示表不存在的解决方法电脑重装系统后把原来的mysqldata复制进去后大部分表是可以访问的,但是有几个表提示表不存在:error:1146:Table’a_content’doesn’texist这种情况就是要把原来mysql安装目录data里的ibdata1也要拷贝过去INNODB是MYSQL数据库一种流行的数据库引擎,支持事务(行级),在企业级应…

    2022年6月14日
    41
  • Openssl Heartbleed

    Openssl Heartbleed近日闹的沸沸扬扬的Heartbleed漏洞,仿佛一下子再次将人们拉回了对网络安全的关注和担忧。这个问题就是由于服务器端没有对用户发过来的心跳包数据进行边界检查,服务端根据用户心跳包指定的数据长度来返回同样长度的数据。如果用户指定长度为100字节,而实际心跳数据的长度只有1字节,服务端还是会memcpy长度100字节的数据,这样就会把服务端内存中的数据返回给用户,可能会…

    2022年7月15日
    16
  • vue双向绑定原理面试题_面试可以记笔记吗

    vue双向绑定原理面试题_面试可以记笔记吗2019年6月6号,为了爱情,我离开工作了一年多的广州来到了杭州这个互联网城市。开始我的前端面试之旅…放下拧螺丝的扳手,开始造起了飞机…面试的第一家,一开始就问Vue双向绑定怎么实现。一脸蒙蔽,之前看过源码,但是没有深入研究,只回答出了使用Object.definePropertyObject.defineProperty(obj,prop,{//…g…

    2022年10月17日
    3
  • vue关闭eslint语法检查

    vue关闭eslint语法检查启动项目时报错 Youmayusespe Use eslint disable next linetoignore Use eslint disable toignoreallw 解决方法 这样就解决了代码如下 lintOnSave false 关闭 eslint 检查

    2025年9月15日
    5
  • rapidxml解析类[通俗易懂]

    rapidxml解析类[通俗易懂]https://sourceforge.net/projects/rapidxml/files/latest/download

    2022年7月17日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号