编译成功了,运行为什么会失败_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需要根据你自己的电脑上的目录操作。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 中标麒麟正在启动caja_中标麒麟和win7差距

    中标麒麟正在启动caja_中标麒麟和win7差距1问题背景在使用UEFI安装中标麒麟系统时,出现warning:/dev/disk/by-label/NeoKylindoesnotexit如下图所示(图来源网络):2原因分析系统在DXE(DriverExecutionEnviroment)驱动加载过程中需要查找系统的启动项/启动文件,也就是waining中的:/dev/disk/by-label/NeoKylin显然,根据报错我们可知,问题就出在该启动文件的路径上–找不到对应的启动文件。3解决方法3.1确定/查看

  • DNS域名解析过程_谈谈域名解析DNS的工作原理

    DNS域名解析过程_谈谈域名解析DNS的工作原理一、主机解析域名的顺序1、找缓存2、找本机的hosts文件3、找DNS服务器注意:配置IP和主机名时,要记得修改/etc/hosts文件,因为有些应用程序在主机内的进程之间通信的时候,会本机

  • 基于STM32F4单片机对步进电机的控制(有代码)「建议收藏」

    基于STM32F4单片机对步进电机的控制(有代码)「建议收藏」步进电机是将电脉冲控制信号转变为角位移或线位移的一种常用的数字控制执行元件,又称为脉冲电机。在驱动电源的作用下,步进电机受到脉冲的控制,其转子的角位移量和速度严格地与输入脉冲的数量和脉冲频率成正比。步进电机每接收一个电脉冲,转子就转过一个相应的角度(步距角)。改变通电顺序可改变步进电动机的旋转方向;改变通电频率可改变步进电动机的转速。因此,通过控制输入电脉冲的数目、频率及电动机绕组的通电顺序就可以…

  • c语言socket编程代码例子

    c语言socket编程代码例子socket_client客户端代码#include<sys/types.h>#include<sys/socket.h>#include<stdio.h>#include<string.h>#include<error.h>#include<netinet/in.h>intmain(){//1.创建socket,socket()函数intsockfd=0;sockfd=sock.

    2022年10月24日
  • 利用人工势场法的最短路径寻找

    利用人工势场法的最短路径寻找人工势场法也可以用作机器人避障。我目前思考的是使其作为全局规划器,规划全局路径,也可以做局部规划直接下达至速度计算,目前暂时先看看全局路径计算。它将整个地图环境抽象为势场,机器人同时受到目标点的引力与障碍物的斥力,向合力的方向移动,当机器人逐步接近障碍物,受到的斥力越来越大以致偏离障碍物,达到避障的效果。如果做一个简化,每次计算便向合力方向延伸一个步长,便可逐渐到达终点。在栅格地图中,障碍物很…

  • 推荐一个命名变量的神奇网站 CODELF

    推荐一个命名变量的神奇网站 CODELF推荐一个命名变量的神奇网站CODELF在我们写程序的时候,总是需要去给各种变量命名。于是各种命名大法都上来了,有拼音的,有首字母缩写的,各种各样。而我们推荐的命名肯定是英文的驼峰命名。今天给大家推荐一个网站:https://unbug.github.io/codelf/这个网站可以根据你输入的关键词,给出很多变量命名的推荐。并且支持中文。另外,针对各种主流编辑器,还有插件。非常推荐大家收藏一下这个

发表回复

您的电子邮箱地址不会被公开。

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