- 博客(11)
- 资源 (6)
- 收藏
- 关注
原创 Linux下c++调用自己编写的matlab函数:通过shell script system command实现
在实际开发中,很多时候需要通过shellscript或者shellcommand来执行matlab函数。其语法如下:matlab-nodesktop -nosplash - nojvm -r "[command];" 这句话的意思是最小化不加载图形界面打开Matlab并在命令提示符后输入command。这里的command可以是function也可以是script,调用时需要省略后缀名.m。function和script的区别就是调用方式不一样,function更灵活更容易扩展。其实传递参数不是functi
2015-02-06 20:44:24 2105
原创 link_directories, LINK_LIBRARIES, target_link_libraries使用总结
总结了include_directories,link_directories,link_libraries和target_link_libraries的作用,并以实例说明它们在CMakeLists.txt中的角色。尤其是后面三个参数,比较相似,容易弄混。INCLUDE_DIRECTORIES(添加头文件目录)它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用(这里特指c++。c和Java中用法类似)。
2015-02-04 16:30:57 46146 4
原创 LINK_LIBRARIES: Targets may link only to libraries. CMake is dropping the item.
编译项目时,用到external library (matlab,需要用到它的libeng.so和libmx.so库),CMakeLists.txt中有这么一句:LINK_LIBRARIES("/opt/MATLAB/R2012a/bin/glnxa64"),编译时会报如下警告和错误:WARNING: Target "myProject" requests linking to directory "/opt/MATLAB/R2012a/bin/glnxa64". Targets may link onl
2015-02-04 16:26:22 18375
原创 解决:MATLAB_Compiler_Runtime libgfortran.so.3: version `GFORTRAN_1.4' not found
今天运行程序时出现一个小错误:/opt/MATLAB/MATLAB_Compiler_Runtime/v717/sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/liblapack.so.3gf)。大概是因为我的程序中用到了liblapack,而liblapack又用到了libgfortran,但是MATLAB_Compiler_Runtime中带来的这个版本的libgfortran
2015-02-03 15:26:07 4060
原创 C++向matlab engine传递二维数组,互为转置
在C/C++中,二维数组是按行排列的。即:先存放a[0]行,再存放a[1]行,接着是存放a[2]行,等等。假设这些行中,每行有N个元素,那么也是依次存放。而在Matlab中,以矩阵方式存储数据,它是按列优先排列的。即:先存放a[0]列,再存放a[1]列,接着是存放a[2]列,等等。所以,在这里我们将C++中的多维数组传递到matlab的时候,一定要记得这一顺序问题。其实很简单,只要考虑一次转置就可以了。比如在C++中定义了一个M*N的二维数组A,现在想把它传递到matlab中进行运算,那么只需要在matla
2015-02-02 19:30:11 3107
原创 Linux下c++调用自己编写的matlab函数:通过matlab引擎实现
问题描述:有一个c++程序main.cpp,和一个matlab函数myFunc.m。现在要做这件事:1)从main.cpp中传递一个1行5列的double类型的array到myFunc.m中; 2)myFunc.m中求和; 3)main.cpp中接收myFunc.m返回的和并输出。实验平台是:ubuntu 12.04.5 + g++4.6 + matlab2012a。
2015-02-01 22:37:00 4020 1
原创 Linux 64bit matlab2012a安装MCR Installer,解决无法打开动态链接库问题
通过c++调用matlab中自己编写的函数(是通过将该函数在matlab中mcc编译成.so,然后c++中调用这个.so的方式),成功编译后(编译时也出现一些错误,详情点这里),但是成功编译完后,居然不能运行。为什么编译通过不报任何错误,但是运行不了呢?原来是因为matlab的动态链接库运行时需要安装MCRInstaller(它包含matlab所有的动态链接库文件),所以本文需要安装一下MCRInstaller。我的matlab版本为2012a。
2015-02-01 21:48:53 6475 5
原创 解决In function `mwException::mwException()': undefined reference to `mclcppCreateError'
在进行这个实验中,通过c++调用matlab中自己编写的函数(是通过将该函数在matlab中mcc编译成.so,然后c++中调用这个.so的方式),报错记录总结。实验环境:Ubuntu 12.04.5 64bit, gcc 4.6, matlab 2012a 。
2015-02-01 20:46:08 4838 3
原创 Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现
这篇笔记通过mcc将.m函数编译成动态链接库供c++调用的方式实现从c++中调用matlab里面的自己写的函数。其实,调用自己编写的m函数,只是多了一步将自己的matlab函数编译成动态链接库文件(也就类似自带的那种eigen.h和libeng.so)。实验平台:ubuntu 12.04 + g++4.6 + matlab2012a
2015-02-01 16:57:42 7928 16
原创 gcc编译器常用选项的含义
gcc(GNU Compiler Collection)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++、Object C、Jave等多种语言编写的程序。gcc又可以作为交叉编译工具,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件。gcc的编译流程有四个步骤:预处理(Pre-Processing), 编译(Compiling), 汇编(Assembling)和链接(Linking)。
2015-02-01 10:59:14 4935 1
vtk Polydata volume calculation
2015-05-30
vtk读写和创建点之间的connectivity实例
2015-05-24
vtk DataFile standard format
2015-05-24
Linux下用c++调用自己的matlab函数的一个入门实例
2015-02-02
libstdc++.so.6.0.20 含GLIBCXX_3.4.15 - GLIBCXX_3.4.20
2015-01-25
libstdc++.so.6
2015-01-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人