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

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

mex CC=g++ DT.c
mex CC=g++ height_function_der.c
mex CC=g++ height_function_grad.c
mex CC=g++ local_min.c
mex CC=g++ zero_crossing.c
mex CC=g++ -lm get_full_speed.c
mex CC=gcc corrDn.c wrap.c convolve.c edges.c
mex CC=gcc upConv.c wrap.c convolve.c edges.c

cd lsmlib
mex CC=g++ computeDistanceFunction2d.c FMM_Core.c FMM_Heap.c lsm_FMM_field_extension2d.c
mex CC=g++ computeExtensionFields2d.c FMM_Core.c FMM_Heap.c lsm_FMM_field_extension2d.c
mex CC=g++ doHomotopicThinning.c FMM_Core.c FMM_Heap.c lsm_FMM_field_extension2d.c
cd ..


 

这部分改写成:

mex  DT.c
mex  height_function_der.c
mex  height_function_grad.c
mex local_min.c
mex zero_crossing.c
mex  get_full_speed.c
mex  corrDn.c wrap.c convolve.c edges.c
mex  upConv.c wrap.c convolve.c edges.c

cd lsmlib
mex  computeDistanceFunction2d.c FMM_Core.cpp FMM_Heap.cpp lsm_FMM_field_extension2d.cpp
mex  computeExtensionFields2d.c FMM_Core.cpp FMM_Heap.cpp lsm_FMM_field_extension2d.cpp
mex  doHomotopicThinning.c FMM_Core.cpp FMM_Heap.cpp lsm_FMM_field_extension2d.cpp
cd ..


 

首先先说明下,要想在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文件,可以解决上述问题

你可能感兴趣的:(Windows平台上 Matlab 关于g++下面的编译,成功修改。)