matlab生成dll的编译错误_第1页
matlab生成dll的编译错误_第2页
matlab生成dll的编译错误_第3页
matlab生成dll的编译错误_第4页
matlab生成dll的编译错误_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、M函数文件编译成DLL文件问题请教编译环境:MATLAB 7 R14有如下函数fun cti on y =sample (x)&n bsp ;&n bsp ;&n bsp;y =x +1;保存为sample.m文件,然后执行如下命令编译:(有一个警告信息岀现?!)> > m cc -W lib:sample -T lin k:lib sample&n bsp ;&n bsp;To get started, select MATLAB Help or Demos fromthe Help menu.Warning: No m atchi ng built in fun cti on

2、available forC:MATLAB7toolboxsimuli nksimuli nkset_param.bi编译后得到如下一批文件:sam ple.ctf , sam ple.exports , sample.m , sample.dll , sample.h ,sam ple_m cc_com ponent_data.c , sam ple.c , sam ple.exp , sample.lib其中*.dll文件可以在其他语言(我现在是用Python)中成功调入,当时不能执行函数运算。我查遍GOOGLE的信息,猜测可能的原因是经编译后DLL文件中的函数名不在是原来的函数名(Fun

3、 cti ons m ay be exported with bma ngled n ames/b)。然后利用软件工具“ Dependency Walker打开sample.dll则可以看到里面好像有五个函数:_mlfSample_mlxSample_sampleI nitialize_sampleI nitializeWithHa ndlers_sampleTerm in atebcolor=red 问题请教:/color/b(1 )编译时如何控制输岀的DLL文件中的函数名?(2 )编译时的警告信息为何意?非常感谢!SCIE 发表于 2004-8-12 13:55回复:M函数文件编译成DLL

4、文件问题请教我是用-l参数进行编译的,生成的dll种的函数名都没有下划线。Insomn ia发表于 2004-8-12 16:04回复:回复:M函数文件编译成DLL文件问题请教quotebSCIE wrote:/b我是用-l参数进行编译的,生成的 dll种的函数名都没有下划线。/quote非常感谢回复。但不是很明白。:I不是讲-I参数 和-W lib -T link:lib是等效的吗?您说的方法我试过了。警告信息仍然存在。不知道这里说的b “生成的dll种的函数名都没有下划线/b,是什么意思。我采用DEPENDS 程序所看到的DLL中的函数仍然是有下划线的?SCIE 发表于 2004-8-12

5、 17:13回复:M函数文件编译成DLL文件问题请教不过我的确实是没有下划线的(用Depedency walker 查看dll的输岀函数,函数名都没有加下划线),可能与配置mcc时选择的编译器有关,我选的是VC6.0。把 toolboxcom pilerdeploymatlabrt.m中与 set_param有关的行(第 81 和 82 行)注释掉然后重新编译看是否有效。Insomn ia发表于 2004-8-12 22:47回复:回复:M函数文件编译成DLL文件问题请教quotebSCIE wrote:/b不过我的确实是没有下划线的(用Depedency walker查看dll的输岀函数,函

6、数名都没有加下划线),可能与配置mcc时选择的编译器有关,我选的是VC6.0。把 toolboxcom pilerdeploymatlabrt.m中与 set_param有关的行(第 81 和 82 行)注释掉然后重新编译看是否有效。/quote非常感谢。其实我面临的问题是:用其他程序来调用MATLAB生成的DLL文件是,其中的函数名与原来M文件中的函数名是否不同?不知道各位有没有使用C来调用MATLAB得到的DLL函数文件的经验,调用时函数名如何定义?盼援手,非常感谢!huaju nw 发表于 2004-8-13 08:06回复:M函数文件编译成DLL文件问题请教默认都是加 mlf 在前面,

7、而且只有第一个字母大写。huaju nw 发表于 2004-8-13 08:08回复:M函数文件编译成DLL文件问题请教Warning: No matchi ng built in fun cti on available forC:MATLAB7toolboxsimuli nksimuli nkset_param.bi参见:http:/ge ni /post-65938.ht mlcwit 发表于 2004-8-13 15:09回复:M函数文件编译成DLL文件问题请教Warni ng or Error whe n Usi ng MATLAB Compiler 4

8、.0Why do I receive a set_param(R14)?山城棒棒儿军 06-24 21:45问题描述:在按要求安装好MCR后,即使编译最简单的hello.exe (hello.m)都无法运行,岀现Un defi ned comma nd/fu ncti on set_paramError in =& gt; m atlabrc at 81解决方法:1、将 MATLAB7toolboxcompilerdeploymatlabrc.m中的81 行 set_param(0,PaperType,defaultpaper);82 行 set_param(0,PaperUnits,defa

9、ultunits);注释掉,或者干脆删掉。2、 在Matlab7的命令窗口运行3、重新编译文件后即可运行。4、 不用重新安装MCR另有一问题描述见PX9rehash toolboxcache/support/solutio ns/data/1-O9PX9.html?solutio n=1-O9Warni ng or Error whe n Usi ng MATLAB Compiler 4.0?Warni ng or Error whe n Usi ng MATLAB Compiler 4.0Subject:Why do I receive a se

10、t_paramProblem Descripti onWhy do I receive a set_param (R14)?I am using the MATLAB Compiler and receive the following error:Warning: No matchi ng built in fun cti on available for$MATLAB/toolbox/simuli nk/simuli nk/set_param.bi(where $MATLAB = the MATLAB root directory on my mach in e)Why is this?S

11、oluti on:This has been verified as a bug in the MATLAB Compiler 4.0 (R14).In certai n cases you m ay get a warni ng/error message regard ing SET_PARAM notbeing found when using MATLAB Compiler 4.0 (R14). SET_PARAM is a SIMULINKfun cti on that is not supported by MATLAB Compiler.To resolve this issue

12、, you should modify the followi ng file:$MATLAB/toolbox/compiler/deploy/matlabrc.m(where $MATLAB = the MATLAB root directory on your mach in e)Comme nt out the follow ing lines (n umbers 81 and 82) that have a call toSET_PARAM.set_param(0,PaperType,defaultpaper);set_param(0,Paper Un its,defaultu ni

13、ts);When you are fini shed, save thesecha nges and issue the follow ing comma nd at theMATLAB comma nd prompt:rehash toolboxcache评论 / Trackback 地址:/trackback/65938Insomn ia 发表于 2004-8-31 11:15回复:回复:M函数文件编译成DLL文件问题请教(quotebSCIE wrote:/b我是用-l参数进行编译的,生成的 dll种的函数名都没有下划线。/quote后者做SC

14、IE 兄:可否把你编译好的DLL文件发给我对比一下?可发到 回帖的附件.ThanksSCIE 发表于 2004-9-1 08:11回复:M函数文件编译成DLL文件问题请教sam ple.mfun cti on y =sample (x)y = x +1;In som nia发表于 2004-9-1 10:53回复:M函数文件编译成DLL文件问题请教SCIE,非常感谢!你得到的DLL文件中的函数的确是没有下划线的。奇怪的是我也用mcc -l sam ple的命令进行编译,得到DLL文件的函数名却与你的不同(有两处不同,见附图),看来还有问题没有搞清楚。p.s.

15、 我用的是 MATLAB V9920 (R14)SCIE 发表于 2004-9-1 17:38回复:M函数文件编译成DLL文件问题请教你在配置mcc的时候选择的是什么编译器?我选的是Visual C+6.0In som nia发表于 2004-9-1 23:44回复:M函数文件编译成DLL文件问题请教的确,上述问题是由于编译器的不同造成的。非常感谢。我本人是希望采用 PYTHON语言来调用此 DLL文件中的函数的,我知道在调用一个dll函数之前,必须了解该函数的调用协议,包括函数的名称,参数的数目和类型以及返回值类型。color=redb敢问各位前面 M文件生成的五个函数的含义如

16、何?/b/colormlfSamplemlxSamplesam pie In itializesam pie In itializeWithHa ndlerssam pleTerm in ate我在PYTHON语言中采用以下语句windll.sample.mlfSample(IO)或 windll.sample.mlxSample(IO)都不能得到期望的11的答案。color=redb各位应用其他语言(C,C+ , vb)调用DL函数L时,传递参数需要有什么注意事项吗?(希望得到点提示,他山之石可以攻玉)/b/colorcolor=red 非常感谢! /colorSCIE 发表于 2004-9

17、-2 09:59回复:M函数文件编译成DLL文件问题请教【仅适用于MATLAB7.0】用mcc -l sam ple.m 编译后会生成三个 c程序文件,其中在 sample.c 中有关于sample.dll 中五个导岀函数的定义,现只把原型贴岀来。bool sampleInitializeWithHandlers(mc lOutputHandlerFcnerror_handler,m c lOutput HandlerFcn print_handler);bool sample In itialize(void);void sampleTerm in ate(void);void mlxSam

18、ple(i nt n lhs, mxArray *plhs, int n rhs, mxArray *prhs);void mlfSample(i nt n argout, mxArray* y, mxArray* x);由此可以看岀在 mlxSample 或者mlfSample只代入一个参数是错误的,mxArray 是MATLAB用于存储数据的一个结构体,它可以存储MATLAB中的任意类型的数据。另外,在调用该 dll之前,必须先调用mcllnitializeApplication进行初始化,然后再调用sam pleI nitialize 或者 sample In itializeWithHa ndlers,之后才能调用 mlxSample 或者mlfSample,最后要依次调用sampleTerm in ate禾口 mc lTermi nateApplicatio n。mc lInitializeApplication禾口 mclTerminateApplicat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论