2015-10-13 80 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();