2013-03-16 1 views
2

я пытался узнать MATLAB для процесса C и я использовал MatLab кодер для генерации C/C++ кода из этого .m файлаЯ не могу скомпилировать код, сгенерированный matlab, он дает мне ошибку компоновщика, какой правильный шаг я должен соблюдать?

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. но когда я включил сгенерированный файл заголовка и связал статическую библиотеку внутри визуальной студии и скомпилировал ее, он дал мне эту ошибку.

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 2010\Projects\chiraq\chiraq\source.obj chiraq 

среды разработки ---- Matlab 2012b, Visual Studio 2012, Visual Studio 2010,

+0

Где определение функции? Это звучит так, будто вы либо не правильно связываетесь, либо пропускаете код определения функции. – Justin

+0

вот простой продукт.c выглядит как 'real32_T simpleProduct (real32_T a, real32_T b) { return a * b; } ' –

ответ

0

Причина заключается в том, что ваш визуальный проект студии не нашел 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].