Я пытаюсь сгенерировать C код из кода MATLAB с использованием некоторого внешнего кода C ++. Чтобы отладить мою проблему, я сделал простой пример. Я создал foo. cpp как:
#include "foo.h"
using namespace std;
double foo(double in1, double in2)
{
return in1 + in2;
}
с заголовочным файлом с именем foo.h:
double foo(double in1, double in2);
Затем я написал код MATALB:
function r = callfoo(x,y)
r=1.1;
if coder.target('MATLAB')
% Executing in MATLAB, call MATLAB equivalent of
% C function foo
r = x + y;
else
% Executing in generated code, call C function foo
coder.updateBuildInfo('addSourceFiles','foo.cpp');
coder.cinclude('foo.h');
r = coder.ceval('foo', x, y);
end
end
Но он не смог сгенерировать код C, так как мне не удалось получить это сообщение от кодера:
Ошибка сборки: C Компилятор выдал ошибки. См. Журнал сборки для получения дополнительной информации.
Когда я указал на более подробную информацию, он указал мне на: https://www.mathworks.com/help///coder/ug/compiler-and-linker-errors.html
Этот пример я взял из Mathworks на самом деле (https://www.mathworks.com/help/simulink/slref/coder.ceval.html). Однако их внешний код - C, мой - C ++.
Как мне вызвать внешний код C ++ из сгенерированного C кода?