2015-10-13 93 views
1

所以我想创建一个Mex文件,它打开一个连接到数据记录器,我想避免必须来回传递设备ID。我尝试使用外部变量来存储设备ID,但我似乎无法编译。 所以我试图做的有点是这样的: 文件打开连接:然后外部变量mex文件

#include ... 

int devID; 

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) 
{ 
    devID = openConnection(); 
    return; 
} 

和文件B应该能够通过访问DEVID:

#include ... 

extern int devID; 

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) 
{ 
    closeConnection(devID); 
    return; 
} 

文件中的编译罚款然而,当我尝试编译文件BI得到:

unresolved external symbol "int devID" 

我将不胜感激任何帮助。

+0

你是否在文件B中包含文件A?你有没有试过把它们编译在一起? –

回答

0

尝试使变量与mexMakeArrayPersistent一致。我认为您只需要使用一个mexFunction(),这将用于打开或关闭连接,具体取决于输入标志。

或者,也可能存在来自数据记录器的功能,该功能在存在连接时返回设备ID,例如, devID = checkConnection();