我正在尝试学习matlab到C工作流程,我使用matlab编码器从这个.m文件生成C / C ++代码
function c = simpleProduct(a,b) %#codegen
c=a*b;
在代码生成之后,我的visual 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,
答案 0 :(得分:0)
原因是您的visual studio项目找不到simpleProduct.dll
。
解决方案:当您将MATLAB分发到visual studio时,它将生成(至少)四个文件,即
simpleProduct.h
simpleProduct.lib
simpleProduct.dll
simpleProduct.ctf
您需要将这4个文件复制到visual studio解决方案目录,并将simpleProduct.lib
添加到[Properties > Linker > Input
]。