linux下matlab安装编译独立程序杂记
mount -o loop [path][filename].iso /media/matlab
1.拷贝破解license_405329_R2014a.lic 到制定目录 /usr/local/etc/license_405329_R2014a.lic
2.
sudo ./install -destinationFolder /usr/local/matlab2014 -fileInstallationKey 12345-67890-12345-67890 -agreeToLicense yes -outputFile /tmp/mathworks_localhost.log -mode silent -activationPropertiesFile /usr/local/etc/license_405329_R2014a.lic
3.破解install.jar替换matlab2014/java/jar/install.jar;
从安装包中找到libmwservices.so,找到你本地安装Matlab的路径 /usr/local/matlab2014
也可以installer_input.txt为模版,安装
也可以uninstaller_input.txt为模板,卸载
./matlab -c /yourpath/matlab2012b/serial/matlab2012b_std.dat -nodisplay
4.最后将matlab添加到.bashrc 文件中,就可以在任意位置启动matlab:
gvim /root/.bashrc
export PATH=/usr/local/matlab2014/bin:$PATH
alias matlab2014='matlab -c /usr/local/etc/license_405329_R2014a.lic -nodisplay'
source /root/.bashrc
1.加载文件夹
addpath('dir') %加载单个文件夹
addpath('dir1','dir2') %加载多个文件夹
addpath(genpath('dir'))%回溯性加载本文件夹及其子文件夹
2.执行文件
-nodesktop 启动jvm(Jave Virtual Machine),不启动desktop,但help 界面,preferences界面等仍可通过cmdline 调出,即jvm启动但不启动desktop,可以启动其他显示
-nodisplay 启动jvm,不启动desktop,不启动任何显示相关,忽略任何DISPLAY 环境变量;即jvm启动但不能显示
-nojvm 不启动jvm,则与之相关的一切活动将无法进行,包括图形界面显示
-nosplash 只是不显示启动时的log画面,jvm,desktop等正常启动
nohup 运行速度太慢
matlab -c /usr/local/etc/license_405329_R2014a.lic -nojvm <run.m> fill.out
处理的文件 run.m, 屏幕上输出的结果fill.out
或者
matlab -c /usr/local/etc/license_405329_R2014a.lic -nojvm -r run fill.out
matlab -c /usr/local/etc/license_405329_R2014a.lic -nojvm -r run
在matlab字符环境中执行run.m命令: run test
nohup matlab -c /usr/local/etc/license_405329_R2014a.lic -nodisplay < test.m 1>running.log 2>running.err & 挺快,推荐
matlab2014a 支持4.7以下, 换gcc
ln -s /home/welen/data/backup/20150126/gcc /usr/bin/gcc
ln -s /home/welen/data/backup/20150126/g++ /usr/bin/g++
有时会报license错误,指定目录
独立运行的程序可能依赖动态库
/usr/local/matlab2014/bin/glnxa64/
/usr/local/matlab2014/runtime/glnxa64
export LD_LIBRARY_PATH=/usr/local/matlab2014/bin/glnxa64:/usr/local/matlab2014/runtime/glnxa64
旧库会报错 GLIBCXX_3.4.15' not found (现在gcc4.8 和gcc4.4 都存在),网上有处理的方法。 libstdc++的问题
异常:libXt.so.6: cannot open shared object file: No such file or directory
https://help.codeocean.com/en/articles/1397544-missing-libxt-so-6-installing-x11-dependencies
libxt6
- libxmu6
在matlab里面,测试执行
Features('/home/welen/matlab/test/FEA/netlab3_3/testcode','/home/welen/matlab/test/FEA/netlab3_3/outcode');
通过,则编译独立程序:
加载库路径
addpath(genpath('/home/welen/matlab/test/FEA/MIRtoolbox1.6.1'))
不加载某些库 simulink
f = dir(fullfile(matlabroot, 'toolbox', 'simulink')); %保留
for i=1:length(f)
rmpath(fullfile(matlabroot, 'toolbox', 'simulink', f(i).name));
end
编译
mcc -mv -o MakeFeature Features.m MakeFeatureSet.m
在本机上,独立运行程序,可能需要加载动态库
ldd,程序依赖dll
export LD_LIBRARY_PATH=/usr/local/matlab2014/bin/glnxa64:/usr/local/matlab2014/runtime/glnxa64
./MakeFeature '/home/welen/matlab/test/FEA/netlab3_3/testcode' '/home/welen/matlab/test/FEA/netlab3_3/outcode'
移植到别的机器:
拷贝MCRInstaller.zip 以及系统所需的动态库(lib,lib64)
解压后,运行
sudo ./install -destinationFolder /usr/local/matlab2014 -fileInstallationKey 12345-67890-12345-67890 -agreeToLicense yes -outputFile /tmp/mathworks_localhost.log -mode silent -activationPropertiesFile /usr/local/etc/license_405329_R2014a.lic
就可以单独运行了。