簡體   English   中英

我無法編譯matlab生成的代碼,它給了我一個鏈接器錯誤,我必須遵循的正確步驟是什么?

[英]i cant compile matlab generated code, it gives me a linker error what is the correct step i have to follow?

我試圖學習Matlab到C的工作流程,並且我使用了Matlab編碼器從.m文件生成C / C ++代碼

  function c = simpleProduct(a,b) %#codegen
  c=a*b;

生成代碼后,我的可視win32 c ++項目將如下所示。

#include <iostream>
#include "simpleProduct.h"  //matlab generated header file.
using namespace std;
void main(){
    cout<<simpleProduct(34,55);   //matlab generated funcion
}

我什至從項目屬性配置了“附加庫”和“附加依賴項”到生成的靜態庫中,但是同樣的問題一次又一次地發生。

從這段代碼中,我生成了一個靜態庫。 在Matlab上操作成功。 但是當我包括生成的頭文件並在Visual Studio中鏈接靜態庫並進行編譯時,它給了我這個錯誤。

Error   1   error LNK2019: unresolved external symbol "float __cdecl simpleProduct(float,float)" (?simpleProduct@@YAMMM@Z) referenced in function _main C:\Users\serakpc\Documents\Visual Studio 2010\Projects\chiraq\chiraq\source.obj chiraq

開發環境---- Matlab 2012b,Visual Studio 2012,Visual Studio 2010,

原因是您的Visual Studio項目無法找到simpleProduct.dll

解決方案:將MATLAB分發到Visual Studio中時,它將生成(至少)四個文件,即

  1. simpleProduct.h

  2. simpleProduct.lib

  3. simpleProduct.dll

  4. simpleProduct.ctf

您需要將這4個文件復制到Visual Studio解決方案目錄,並將simpleProduct.lib添加到[ Properties > Linker > Input ]。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM