MATLAB 2017a编译gpb代码
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代码相关推荐
- 举例说明使用MATLAB Coder从MATLAB生成C/C++代码步骤
MATLAB Coder可以从MATLAB代码生成独立的.可读性强.可移植的C/C++代码. 使用MATLAB Coder产生代码的3个步骤:准备用于产生代码的MATLAB算法:检查MATLAB代码的 ...
- asp.net matlab,ASP.NET与MATLAB混合编译以及数据传递【更新中】
本帖最后由 yinbo20081314 于 2015-5-20 00:35 编辑 在VS环境的项目中,首先需要引用以下dll才能开启MATLAB混编.[引用1]MatlabApplication(Ve ...
- Linux安装MATLAB 2017a
Linux安装MATLAB 2017a 前言 下载镜像文件 创建挂载目录 挂载镜像R2017a_glnxa64_dvd1.iso 安装镜像 挂载镜像R2017a_glnxa64_dvd2.iso li ...
- 基于MATLAB Coder将matlab代码转换成C代码
MATLAB Coder可以从MATLAB代码生成独立的.可读性强.可移植的C/C++代码.本文基于matlab2015a编制,但是也适用于matlab 2014~2016的版本. 1. 使用MATL ...
- matlab函数编译成库供C++调用(非常详细)
MATLAB具有着很高的计算性能,一些算法用MATLAB很容易实现,而用C++很难实现,如果想在C++中调用MATLAB编写的函数,可以将该函数编译成库文件,之后在C++中对其进行调用. 本文详细讲解 ...
- matlab中调用java代码_Matlab中调用第三方Java代码
在Java中采用Matlab JA Builder可以实现调用m文件,采用这样的方式,可在Matlab的M文件中,直接调用Java类.这种方式可以表示为Java--> Matlab( m, Ja ...
- python的代码编译、代码打包方法
python的代码编译.代码打包方法 代码编译 把代码编译成pyc文件 import py_compilepy_compile.compile(r'文件路径') 或者直接在terminal中运行 py ...
- 使用DOSBox编译汇编代码
安装 DOSBox:https://blog.csdn.net/qq_44989881/article/details/117266756 配置环境变量 添加后,在DOSBox控制台中输入 masm, ...
- python直方图均衡化代码_基于matlab的直方图均衡化代码
基于matlab的直方图均衡化代码 2007-04-15 20:15 clear all %一,图像的预处理,读入彩***像将其灰度化 PS=imread('1.jpg'); ...
最新文章
- 一套使用注入和Hook技术托管入口函数的方案
- 实战 | 深度学习轻松学:如何用可视化界面来部署深度学习模型
- python的数学模块是什么_Python的数学模块Think Python
- PAT甲级1088 Rational Arithmetic:[C++题解]分数的加减乘除
- 【LeetCode从零单排】No26.Remove Duplicates from Sorted Array
- python蟒蛇绘制 C
- 3D集合图元:最小边界框/包围盒(boundingbox)
- 对象的序列化与反序列化---IO学习笔记(四)
- LeetCode MySQL 615. 平均工资:部门与公司比较(over窗口函数)
- 人人开源之代码生成器(renren-generator)
- 用oracle的java存储过程实现BLOB字段的字符串读取
- BERT-从业者的观点
- IntelliJ产品C盘瘦身
- The system proxy was changed. Click to reenable capturing.
- 某金融企业核心存储POC测试及选型经验
- Hibernate_9_Person和IdCard实例_一对一关系:基于主键
- 盘点行业APP运营推广渠道有哪些
- UVA 11549 calcular conundrum 计算机老谜题
- 2020全新的微信域名防封技术,域名怎么避免防封,如何防拦截?
- 企业外贸海外邮箱服务哪个好?企业邮箱前缀可以定制吗?