zoukankan      html  css  js  c++  java
  • VS2010与matlab R2011b混合编程遇到问题及解决

    1.要生成C++动态链接库,在matlab命令窗口中输入:

    >> mcc -W cpplib:ColorHarris -T link:lib ColorHarris -d F:\zhangying\xieyulin\cfile\

    结果出现:Depfun error: 'Unable to locate ColorHarris as a function on the MATLAB path'

    原因:当前编译路径没有修改,错误已经提示了,将当前matlab路径改到你这个m文件所在的路径下,(点击运行按钮会出现 change directory,选择即可)再进行编译!

    2.在VS2010中执行到:

    if( !ColorHarrisInitialize())
        {
             std::cout << "Could not initialize ColorHarris!" << std::endl;
        }

    时出现:cannot open CTF archive file

    'c:\document~1\jiao\local~1\Temp\mathworks_tem_2696_2808'

    or

    'c:\document~1\jiao\local~1\Temp\mathworks_tem_2696_2808.zip'

    这个问题查了很长时间也没查出来解决方法,后来新建了工程,重新添加文件,结果突然没这个问题了。。就这么不了了之。。。

    参考博客: http://blog.sina.com.cn/s/blog_4fc6546101011cu5.html

    3.将matlab的m文件用mcc生成.h .lib .dll 文件后拷贝到VS2010项目根目录中,结果运行时提示编译的应用程序或DLL为无效的windows映像。

    分析:查了很长时间,觉得应该是拷贝的过程中损坏了dll文件

    解决:在编译时就将生成文件的所在目录指定为VS2010项目根目录,保留.h .lib .dll 文件,再将其他文件项删除即可。为了保险,用mcc -c 生成ctf文件也放在根目录下,运行通过。

    4.在VS2010调用matlab文件时,提示 Undefinedfunction “myfun1”  for input arguments of type 'double'.

    分析:myfun1与调用的matlab主函数不在同一个文件夹里,在matlab中运行时不会出现找不到函数的问题(还是觉得matlab很智能啊)。但VS2010找不到放在另一个文件夹里的函数,是路径的问题。

    解决:将myfun1.m拷贝到调用的matlab主函数同一个路径下(放在同一个文件夹里),运行通过。

  • 相关阅读:
    java-以月为单位,得到一年中某一个月份的范围
    计算两个时间段相差几个月(包含相差的哪些月份)
    单个进程最大线程数
    Dell PowerEdge R720内存安装原则
    Java [parms/options] range -b 100 -c 10 -i 100 -t 300 -s 180
    PhysicalDrive
    classpath和环境变量设置
    MySQL正则表达式
    MySQL模式匹配(LIKE VS REGEXP)
    ubuntu为什么没有/etc/inittab文件? 深究ubuntu的启动流程分析
  • 原文地址:https://www.cnblogs.com/yingying0907/p/2710826.html
Copyright © 2011-2022 走看看