0

我正在为我的学校项目测试 matlab 到 c/c++ 代码,我不知道如何在 Visual Studio 中使用生成的 c/c++ 代码和静态库,我的 matlab 函数很简单

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)" (?simpleProduct@@YAMMM@Z) referenced in function main  c:\Users\serakpc\documents\visual studio 2012\Projects\matlabCoder\debugger\Source.obj  debugger

另外,如果有人帮助我为 Windows OS 通用 PC 配置 matlab 编码器,我将不胜感激。例如,你建议我在硬件面板下的“代码替换库”和“设计供应商”中使用什么

4

1 回答 1

0

解决方案是,检查仅生成 matlab 代码并从头开始创建一个静态项目并使用 Visual C++ 编译生成的代码。我在一些论坛中找到了这个解决方案并且它有效。我认为 matlab 为 linux 编译库。

于 2013-04-12T03:32:09.173 回答