error: expected constructor, destructor, or type conversion before '(' token?

25 次查看(过去 30 天)
I'm trying to compile a cpp file using mex (changeanalysis.cpp). I have Matlab R2012a, Xcode 4.6 on a MAC OS X 10.7. In the file changeanalysis.cpp, aef_global_dllexport.h is included. Some part of aef_global_dllexport.h is as follows:
////////////////////////
// DLL EXPORT FUNCTIONS
////////////////////////
#define DLLEXPORT _declspec(dllexport)
DLLEXPORT double maha_dist_3D_ex( double x,
double y,
double z,
double* mean,
double** icovm);
DLLEXPORT int matrix_inv_ND_ex( double** matND,
double& det,
int Dim);
DLLEXPORT int matrix_copy3x3_ex( double** x,
double** y);
.
.
.
When I compile the file changeanalysis.cpp, I get the following error message at the command prompt:
mex -I"/Users/marzi/Documents/MATLAB" changeanalysis.cpp
In file included from changeanalysis.cpp:58:
/Users/marzi/Documents/MATLAB/aef_global_dllexport.h:7: error: expected constructor, destructor, or type conversion before '(' token
/Users/marzi/Documents/MATLAB/aef_global_dllexport.h:13: error: expected constructor, destructor, or type conversion before '(' token
/Users/marzi/Documents/MATLAB/aef_global_dllexport.h:17: error: expected constructor, destructor, or type conversion before '(' token
/Users/marzi/Documents/MATLAB/aef_global_dllexport.h:20: error: expected constructor, destructor, or type conversion before '(' token
/Users/marzi/Documents/MATLAB/aef_global_dllexport.h:22: error: expected constructor, destructor, or type conversion before '(' token
/Users/marzi/Documents/MATLAB/aef_global_dllexport.h:24: error: expected constructor, destructor, or type conversion before '(' token
/Users/marzi/Documents/MATLAB/aef_global_dllexport.h:29: error: expected constructor, destructor, or type conversion before '(' token
/Users/marzi/Documents/MATLAB/aef_global_dllexport.h:31: error: expected constructor, destructor, or type conversion before '(' token
/Users/marzi/Documents/MATLAB/aef_global_dllexport.h:50: error: expected constructor, destructor, or type conversion before '(' token
/Users/marzi/Documents/MATLAB/aef_global_dllexport.h:75: error: expected constructor, destructor, or type conversion before '(' token /Users/marzi/Documents/MATLAB/aef_global_dllexport.h:100: error: expected constructor, destructor, or type conversion before '(' token
mex: compile of ' "changeanalysis.cpp"' failed.
Error using mex (line 206) Unable to complete successfully.
Does anyone know how to fix this or what is the cause of this error?
Thanks.

回答(1 个)

Geoff Hayes
Geoff Hayes 2014-7-8
Try including two underscores in front of declspec
#define DLLEXPORT __declspec(dllexport)

类别

Help CenterFile Exchange 中查找有关 Call C++ from MATLAB 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by