MATLAB 2017a编译gpb代码

实验环境

fedora 24

matlab 2017a

gpb源码地址

gpb源码

编译过程

编译过程-1

cd grouping/source
mkdir build && cd build
cmake ../ && make
mv *.so ../../lib
cd ../..
export LD_LIBRARY_PATH=$(pwd)/lib:/usr/lib

到目前为止的编译过程我没有遇到问题(上述过程来源于gpb源码的readme)

编译过程-2

addpath(genpath('./'))
compile

compile 出现问题

问题1:mex函数出错,gcc版本不符合,现有的版本不是gcc 4.9(大概意思)

解决方案:参考网站

(为了防止参考网站失去连接,我也具体写一下)

# 下载CentOS 7 SCL源
# 百度云地址:https://pan.baidu.com/s/1hrPJtB2
# 下载后解压,将其中的repo文件和key文件复制到/etc/目录下:
sudo cp ./etc/* /etc -rf# 安装devtoolset-3-gcc-c++
sudo dnf install devtoolset-3-gcc-c++# 安装完毕,若要在当前控制台使用gcc 4.9 使用命令
scl enable devtoolset-3 bash

问题2:compile.m 55行出错,显示undefined reference to ex_index_out_of_bounds.cc

解决方案:

(1)undefined reference to 的原因是matlab找不到声明函数的实现文件

(2)

% 第55行的代码
mex ./matlab/segmentation/mex_contour_sides.cc -I./include% 将上述代码修改为
mex ./matlab/segmentation/mex_contour_sides.cc -I./include -L./ -L../../lib -lopencv_gpb

问题3:compile.m 81行出错,显示undefined reference to cv::Mat::deallcate(大概类似)

解决方案:

灵感来源网站

% 第81行代码
mex ./buildW.cpp -I./util -L../../lib -lopencv_gpb% 将上述代码修改为
mex ./buildW.cpp -I./util -L../../lib -lopencv_gpb -L/usr/local/lib -lopencv_core

解释:-L/usr/local/lib -lopencv_core 的意思是链接声明的编译文件位于opencv的libopencv_core.so,所以找到你电脑上的改文件选填


问题4:compile 94行会有 vector is not declared in this scope(大致意思)

解决方案: 在vector之前添加std::,最终std::vector<>


问题5:contours2ucm.m 第58行 未定义变量rows

解决方案:通过查询代码,其意思大致为得到矩阵的行列

% 第58行
for i=1:rows(seg4)-1,for j=1:columns(seg4)-1,% 将其修改为
[row column]=size(seg4);
for i=1:row-1,for j=1:column-1,

至此我在编译过程中遇到的的问题解决完了。

验证编译

example

问题1:

Error using gca

'/usr/local/MATLAB/R2016a/bin/glnxa64/libmwosgserver.so':

/usr/local/MATLAB/R2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6:

version 'CXXABI_1.3.8' not found (required by /lib64/libGLU.so.1)

大约类似这个,总之就是matlab 2017a不能显示图像,命令行执行imshow(‘image.png’)要不就是busy,要不就报错

解决方案:

参考网站1这个网站描述跟我问题符合,但是并没解决我的问题

参考网站2这个网站内容解决了我的问题,为了防止原网站失效,将解决方案粘贴如下:

What I did was I edited a file called .matlab7rc.sh (located in "path_to_ matlab/bin" folder and its hidden) and uncommented all lines that were(there are several of them):

LDPATH_PREFIX='$MATLAB/sys/opengl/lib/$ARCH'

同时,还有意外之喜,原本我的R2017a 点击右上角的x没有反应,必须得强制关闭,但是经此修改之后,点x可以关闭matlab了。

转载于:https://www.cnblogs.com/Glen-Z/p/7569897.html

MATLAB 2017a编译gpb代码相关推荐

  1. 举例说明使用MATLAB Coder从MATLAB生成C/C++代码步骤

    MATLAB Coder可以从MATLAB代码生成独立的.可读性强.可移植的C/C++代码. 使用MATLAB Coder产生代码的3个步骤:准备用于产生代码的MATLAB算法:检查MATLAB代码的 ...

  2. asp.net matlab,ASP.NET与MATLAB混合编译以及数据传递【更新中】

    本帖最后由 yinbo20081314 于 2015-5-20 00:35 编辑 在VS环境的项目中,首先需要引用以下dll才能开启MATLAB混编.[引用1]MatlabApplication(Ve ...

  3. Linux安装MATLAB 2017a

    Linux安装MATLAB 2017a 前言 下载镜像文件 创建挂载目录 挂载镜像R2017a_glnxa64_dvd1.iso 安装镜像 挂载镜像R2017a_glnxa64_dvd2.iso li ...

  4. 基于MATLAB Coder将matlab代码转换成C代码

    MATLAB Coder可以从MATLAB代码生成独立的.可读性强.可移植的C/C++代码.本文基于matlab2015a编制,但是也适用于matlab 2014~2016的版本. 1. 使用MATL ...

  5. matlab函数编译成库供C++调用(非常详细)

    MATLAB具有着很高的计算性能,一些算法用MATLAB很容易实现,而用C++很难实现,如果想在C++中调用MATLAB编写的函数,可以将该函数编译成库文件,之后在C++中对其进行调用. 本文详细讲解 ...

  6. matlab中调用java代码_Matlab中调用第三方Java代码

    在Java中采用Matlab JA Builder可以实现调用m文件,采用这样的方式,可在Matlab的M文件中,直接调用Java类.这种方式可以表示为Java--> Matlab( m, Ja ...

  7. python的代码编译、代码打包方法

    python的代码编译.代码打包方法 代码编译 把代码编译成pyc文件 import py_compilepy_compile.compile(r'文件路径') 或者直接在terminal中运行 py ...

  8. 使用DOSBox编译汇编代码

    安装 DOSBox:https://blog.csdn.net/qq_44989881/article/details/117266756 配置环境变量 添加后,在DOSBox控制台中输入 masm, ...

  9. python直方图均衡化代码_基于matlab的直方图均衡化代码

    基于matlab的直方图均衡化代码 2007-04-15 20:15 clear all %一,图像的预处理,读入彩***像将其灰度化 PS=imread('1.jpg');             ...

最新文章

  1. 一套使用注入和Hook技术托管入口函数的方案
  2. 实战 | 深度学习轻松学:如何用可视化界面来部署深度学习模型
  3. python的数学模块是什么_Python的数学模块Think Python
  4. PAT甲级1088 Rational Arithmetic:[C++题解]分数的加减乘除
  5. 【LeetCode从零单排】No26.Remove Duplicates from Sorted Array
  6. python蟒蛇绘制 C
  7. 3D集合图元:最小边界框/包围盒(boundingbox)
  8. 对象的序列化与反序列化---IO学习笔记(四)
  9. LeetCode MySQL 615. 平均工资:部门与公司比较(over窗口函数)
  10. 人人开源之代码生成器(renren-generator)
  11. 用oracle的java存储过程实现BLOB字段的字符串读取
  12. BERT-从业者的观点
  13. IntelliJ产品C盘瘦身
  14. The system proxy was changed. Click to reenable capturing.
  15. 某金融企业核心存储POC测试及选型经验
  16. Hibernate_9_Person和IdCard实例_一对一关系:基于主键
  17. 盘点行业APP运营推广渠道有哪些
  18. UVA 11549 calcular conundrum 计算机老谜题
  19. 2020全新的微信域名防封技术,域名怎么避免防封,如何防拦截?
  20. 企业外贸海外邮箱服务哪个好?企业邮箱前缀可以定制吗?

热门文章

  1. CCPD数据集处理(目标检测和文本识别)
  2. 人工智能能否超过人类智能
  3. Python简易五子棋
  4. 自监督直接和具体任务的结合(Task Related Self-Supervised Learning)的探索
  5. 4年前的最佳小说回顾
  6. Smallest Sub-Array
  7. 智能优化算法之遗传算法
  8. 瑞萨单片机之开发环境的搭建(一)
  9. 【maven】最全Maven详解,看这一篇就够啦
  10. python朋友圈可见_女神说不能每张照片P的一样,所以朋友圈开三天可见,用Python一步解决...