大佬教程收集整理的这篇文章主要介绍了c – 在OS X 10.9和MATLAB 2012a下使用Xcode 5.1的Mex文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的mexopts.sh看起来如下:
#PATCH: MacOSX10.8 // updated manually to 10.9 CC='llvm-gcc' CXX='llvm-g++' SDKROOT='/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/' #SDKROOT='/' MACOSX_DEPLOymENT_TARGET='10.9' ARCHS='x86_64' # StorageVersion: 1.0 # CkeyName: GNU C # Ckeymanufacturer: GNU # CkeyLanguage: C # CkeyVersion: CFLAGS="-fno-common -no-cpp-precomp -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOymENT_TARGET" CFLAGS="$CFLAGS -fexceptions" CLIBS="$MLIBS" COPTIMFLAGS='-O2 -DNDEBUG' CDEBUGFLAGS='-g' CLIBS="$CLIBS -lstdc++" # C++keyName: GNU C++ # C++keymanufacturer: GNU # C++keyLanguage: C++ # C++keyVersion: # OLD #CXXFLAGS="-fno-common -no-cpp-precomp -fexceptions -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOymENT_TARGET" # NEW CXXFLAGS="-fno-common -no-cpp-precomp -fexceptions -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOymENT_TARGET -std=c++11" CXXLIBS="$MLIBS -lstdc++" CXXOPTIMFLAGS='-O2 -DNDEBUG' CXXDEBUGFLAGS='-g'
只有在我将-std = c 11添加到CXXFLAGS之后,才能编译使用.cpp扩展名保存的简单C代码.这是我要编译的文件的代码
#include <math.h> #include <matrix.h> #include <mex.h> void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[]) { mexPrintf("Hello World!\n"); }
我把它保存为test.c并编译.这是我得到的输出
@H_255_9@mex test.c
在test.c中包含的文件中:2:
在/Applications/MATLAB_R2012a.app/extern/include/matrix.h:295中包含的文件中:
/Applications/MATLAB_R2012a.app/extern/include/tmwtypes.h:819:9:错误:未知类型
名字’char16_t’
typedef char16_t CHAR16_T;
^
生成1个错误.
@H_255_9@mex: compile of ' "test.c"' Failed.
使用mex时出错(第206行)
无法成功完成.
当文件在CXXFLAGS中保存为test.cpp而没有-std = c 11时,使用了相同的错误.我没有C/C++的经验但是我需要添加一些库或标志来解决问题吗?任何建议,链接都会有所帮助.
谢谢.
使用预处理器将char16_t定义为uint16_t的宏(在stdint.h中定义).在#include“mex.h”之前使用#define,或者只在命令行(mex或CFLAGS)上设置它:
-Dchar16_t=uint16_t
typedef uint16_t char16_t;
要获得uint16_t,您需要#include< stdint.h>.或者尝试UINT16_T(上限).
最后,如果使用C(编译.c文件),@L_616_27@可以定义一个char16_t宏,具体取决于编译器支持的C标准的修订版本:
/* In mymexFile.c */ #include <uchar.h>
以上是大佬教程为你收集整理的c – 在OS X 10.9和MATLAB 2012a下使用Xcode 5.1的Mex文件全部内容,希望文章能够帮你解决c – 在OS X 10.9和MATLAB 2012a下使用Xcode 5.1的Mex文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。