心胸决定格局,眼界决定境界...

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

就可以单独运行了。

posted @ 2015-02-28 15:56  WELEN  阅读(1423)  评论(0编辑  收藏  举报