Matlab C混合编程配置

来源:互联网 发布:淘宝美化图片的软件 编辑:程序博客网 时间:2024/04/25 10:04
近日在使用莱斯大学的GPSR算法的时候遇到了Matlab 和 C混合编程的问题,个人被困扰了一段时间但是找到了解决办法,现记录如下:

系统:OSX 10.11.6 
Matlab:R2015a Mac版
Xcode: 8.2.1

首先将
xcode7_mexopts.zip下载到download目录下
然后打开Matlab依次输入:
  1. >>cd( prefdir );  
  2. >>cd( fullfile( matlabroot, 'bin', 'maci64', 'mexopts' ) );  
  3. >>mkdir mexoptsContentsOLD;  
  4. >>movefile *.xml mexoptsContentsOLD/  
  5. >>movefile( '~/Downloads/xcode7_mexopts/*.xml', '.' );  
  6. >>mex -setup
  7. 这样做后提示还是找不到SDK,查了https://cn.mathworks.com/matlabcentral/answers/303369-mex-cannot-find-a-supported-compiler-in-matlab-r2015b-after-i-upgraded-to-xcode-8-0后找到了原因 ,处理方法如下:
  8.  
  9. 转到文件夹/Applications/MATLAB_R2015b.app/bin/maci64/mexopts并在Matlab中直接打开编辑编辑文件clang ++ _ maci64.xml和clang_maci64.xml。在这两个文件中,搜索包含字符串MacOSX10.10.sdk或MacOSX10.11.sdk的行。复制该行并将其更改为MacOSX10.12.sdk。您将需要在两个文件中的每一个文件中更改4行总数,一行提及dirExists,然后是一行,再次提及cmdReturns,然后再同一个。   
  10.  这样做后使用mex -setup即出现如下提示:
    1. MEX configured to use 'Xcode with Clang' for C language compilation.  
    2. Warning: The MATLAB C and Fortran API has changed to support MATLAB  
    3.      variables with more than 2^32-1 elements. In the near future  
    4.      you will be required to update your code to utilize the  
    5.      new API. You can find more information about this at:  
    6.      http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.  
    7.   
    8. To choose a different language, select one from the following:  
    9.  mex -setup C++   
    10.  mex -setup FORTRAN  
    11.  
    12. 表明可以用C编程
    13. 然后使用 mex hello.c(类似c文件)即可编译得到mexmaci64格式(类似windows的dll)的文件,再通过Matlab运行相关函数时即可自动使用该文件进行编程,不会出现找不到原函数的情况。 
0 0
原创粉丝点击