undefined function or variable 'matlabrc'
2012-11-18 11:15
357 查看
matlab动态链接库使用问题及解决
2012-03-06 15:50 218人阅读 评论(0) 收藏 举报(首先声明我使用的环境为matlab2008a,matlab编译器版本为Compiler 4.8,VC环境为VC++6.0)
参照网上的方法将m文件编译为动态链接库,然后在VC测试程序里使用该动态链接库。在这个过程中遇到两个问题,下面是这俩个问题及其解决方法。
1. unresolved external symbol _mxGetPr_proxy
unresolved external symbol _mxCreateDoubleMatrix_730_proxy
...
将动态链接库相关的文件拷贝到工作目录下之后,在测试程序中调用动态链接库中的函数,编译时出现上述问题。解决方法是在工程中添加matlab的mclmcrrt.lib库。
下面的是参考的MATLAB CENTER网站的原帖
http://www.mathworks.cn/matlabcentral/newsreader/view_thread/241851
2. undefined function or variable 'matlabrc'
第一个问题解决之后,编译正常通过,在测试程序运行的时候出现了上述undefined错误提示,程序运行结果也不正确,但matlab运行正常。
MathWorks网站上关于该问题的解释
http://www.mathworks.cn/support/solutions/en/data/1-8GJS65/index.html?product=CO&solution=1-8GJS65
这个解释的比较明白,是说Compiler 4.8(对于matlabR2009b以前的版本都可以参考)在启动的时候,默认情况下CTF(Component Technology File)data会自动嵌入到C/C++,main和Winmain,shared libraries and standalones里。而MATLABRC脚本(matlab的启动文件)通常包含在CTF archieve中,当应用程序找不CTF archieve时自然会出现上述错误。那为什么会找不到CTF
archieve呢,是因为通常情况下有一些应用程序在build过程中会将所有涉及的二进制文件都删掉,如果动态链接库中嵌入的CTF archieve在编译过程中被删掉的话,应用程序当然就找不到CTF achieve了。
要解决这一问题,需要在编译(mcc)的时候使用 "-C"选项(Do Not Embed CTF achieve by Default),使用Deployment Tool的在setting中的General下将Embed CTF achieve into the application选项取消,这样在最终生成的文件中就会有一个独立的.ctf文件,将该文件拷贝到应用程序的目录下就可以了。
MATLAB CENTRE网站上有人遇到相同的问题,不过情况不太一样,这个是matlab都不能正常工作了,在matlab命令窗口输入任何命令都会出现Undefined function or variable 'matlabrc'的错误提示,最终是通过重装matlab解决的问题
http://www.mathworks.cn/matlabcentral/newsreader/view_thread/172374
请问各位大大,我WIN7安装matlab后可以打开但出现Undefined function or variable 'matlabrc'.
2010-9-6 20:50 提问者: 861628615 | 悬赏分:10 | 浏览次数:1058次
而且无法正常关闭程序,只能用任务管理器关闭,求帮助下,谢谢了!
我来帮他解答
推荐答案检举 | 2010-9-7 19:24
在matlab图标属性里面改了VISTA SP1了吗?我也是win7,32位的。是MATLAB7.0的,实在不行可能是MATLAB本身的问题。
我查了下:
MATLABRC Master startup M-file.
MATLABRC is automatically executed by MATLAB during startup.
It establishes the MATLAB path, sets the default figure size,
and sets a few uicontrol defaults.
On multi-user or networked systems, the system manager can put
any messages, definitions, etc. that apply to all users here.
MATLABRC also invokes a STARTUP command if the file 'startup.m'
exists on the MATLAB path.
你自己看看
相关文章推荐
- matlab Undefined function or variable "x" 错误
- libsvm 在make时出错 Undefined function or variable 'make'.
- Solve Error : Undefined function or variable ‘setInitialWorkingFolder’. Error in matlabrc (line 197)
- 关于MATLAB函数不可用问题。??? Undefined function or method 'minfo' for input arguments of type 'double'.
- Matlab 出现Undefined function '' for input arguments of type 'double'.解决方案
- warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. T
- 消除: warning C4996: 'sprintf': This function or variable may be unsafe. Consider 的方法
- Bug 4---warning C4996: 'strcpy': This function or variable may be unsafe.
- 警告 1 warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead
- 已解决error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
- error C4996: 'sprintf': This function or variable may be unsafe 解决方法
- 'strcpy': This function or variable may be unsafe
- 删除: warning C4996: 'sprintf': This function or variable may be unsafe. Consider 方法
- error C4996: 'sprintf': This function or variable may be unsafe.Consider using sprintf_s instead.
- 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.
- 【问题解决】VS出错,error c4996: 'fopen': This function or variable may be unsafe
- vs2012 error c4996: 'fopen': This function or variable may be unsafe
- warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
- warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.
- [Error]'fopen'This function or variable may be unsafe