Windows平台上 Matlab 关于g++下面的编译,成功修改。

来源:互联网 发布:淘宝客怎么推广到qq群 编辑:程序博客网 时间:2024/06/14 00:52

今天下载了Matlab的代码,里面部分代码用g++写的。

mex CC=g++ DT.cmex CC=g++ height_function_der.cmex CC=g++ height_function_grad.cmex CC=g++ local_min.cmex CC=g++ zero_crossing.cmex CC=g++ -lm get_full_speed.cmex CC=gcc corrDn.c wrap.c convolve.c edges.cmex CC=gcc upConv.c wrap.c convolve.c edges.ccd lsmlibmex CC=g++ computeDistanceFunction2d.c FMM_Core.c FMM_Heap.c lsm_FMM_field_extension2d.cmex CC=g++ computeExtensionFields2d.c FMM_Core.c FMM_Heap.c lsm_FMM_field_extension2d.cmex CC=g++ doHomotopicThinning.c FMM_Core.c FMM_Heap.c lsm_FMM_field_extension2d.ccd ..


 

这部分改写成:

mex  DT.cmex  height_function_der.cmex  height_function_grad.cmex local_min.cmex zero_crossing.cmex  get_full_speed.cmex  corrDn.c wrap.c convolve.c edges.cmex  upConv.c wrap.c convolve.c edges.ccd lsmlibmex  computeDistanceFunction2d.c FMM_Core.cpp FMM_Heap.cpp lsm_FMM_field_extension2d.cppmex  computeExtensionFields2d.c FMM_Core.cpp FMM_Heap.cpp lsm_FMM_field_extension2d.cppmex  doHomotopicThinning.c FMM_Core.cpp FMM_Heap.cpp lsm_FMM_field_extension2d.cppcd ..


 

首先先说明下,要想在windows下运行,将c文件改成cpp文件

对出现for循环的参数变量要初始化。

for (int i = 1; i < iWidth - 1; i++)  {    for (int j = 1; j < iHeight - 1; j++)


 

改为
int i,j;for (i = 1; i < iWidth - 1; i++)  {    for (j = 1; j < iHeight - 1; j++)


还有就是 &出现在c++语言中, 对c语言出现的情况,可以直接去掉,用*指向地址。

进一步修改需要编译的c文件,可以解决上述问题

原创粉丝点击