2013-04-07 115 views
0

正在測試MATLAB到C/C++代碼,爲我校的項目,我不知道如何使用生成的C/C++在Visual Studio中的代碼和靜態庫, 我的MATLAB函數爲MATLAB到C代碼生成流程

一樣簡單
function c = simpleProduct(a,b) %#codegen 
c=a*b; 

,我用MATLAB編碼爲我的Win32項目生成C/C++代碼(靜態庫),但事情是它產生了大量的比在找 這是simpleproduct.c,simpleproduct其他文件。 h,simpleproduct.lib,但是我得到了這個。

rt_nonfinite.h 
rtGetInf.h 
rtGetNaN.h 
rtwtypes.h 
simpleProduct_types.h 
rt_nonfinite.cpp 
rtGetInf.cpp  
rtGetNaN.cpp 
rtwtypes.cpp 
simpleProduct.obj 
rt_nonfinite.obj 
rtGetNaN.obj 
rtGetInf.obj 
simpleProduct_types.cpp 
simpleProduct.lib ------- my static library. 
and others... 

但事情是當過我使用的simpleProduct.h,並調用simpleproduct功能這樣

real32_T value=simpleproduct(10,10); 

它給了我這個錯誤。甚至爲鏈接器添加.lib文件。爲什麼發生這種情況?

Error 1 error LNK2019: unresolved external symbol "float __cdecl simpleProduct(float,float)" ([email protected]@[email protected]) referenced in function main c:\Users\serakpc\documents\visual studio 2012\Projects\matlabCoder\debugger\Source.obj debugger 

加上我將不勝感激,如果有人幫助我配置Windows操作系統通用PC的MATLAB編碼器。例如你推薦我使用硬件面板下的「代碼替換庫」和「設計供應商」

+0

您的調用中的(10,10)可能被視爲整數,編譯器正在尋找一個帶整數的函數。嘗試將其轉換爲明確浮動或使用10.0。 – Navan 2013-04-09 17:45:09

回答

0

解決方法是,檢查生成的MATLAB代碼,並從頭開始創建一個靜態項目並編譯生成的代碼visual C++。我在一些論壇上找到了這個解決方案,它的工作原理。我認爲matlab編譯Linux的庫。

+0

只適用於Visual C++編譯器嗎?我有MinGW64編譯器,並得到相同的錯誤! – 2017-08-14 12:37:42