Ошибка: mclmcr.h: нет такого файла или каталога, вызывающего функцию Matlab из C

Я пытаюсь использовать пользовательскую функцию Matlab из C++. Я создал библиотеку, используя команду ниже.

mcc -B csharedlib: libMyLib myFunction.m

Он не создает mclmcr.h и libmwmclmcrrt.so. Интересно, это часть библиотеки времени выполнения?

Спасибо

1 ответ

Согласно документации:

Все прикладные и программные компоненты, сгенерированные MATLAB Compiler и соответствующими продуктами для сборки, должны быть связаны только с одной библиотекой MathWorks, mclmcrrtxx.lib

.Lib и соответствующие файлы заголовков можно найти в $matlabroot/extern в то время как общие библиотеки.dll/.so можно найти в $matlabroot/runtime/$arch (или внутри установки MCR)

MATLAB имеет удобную функцию mbuild (вы должны настроить его один раз, используя mbuild -setup). mbuild знает, как вызывать компилятор C/C++ с правильными переключателями, чтобы компилятор мог найти необходимые включаемые файлы и библиотеки. Ты можешь использовать mbuild создавать свои собственные исполняемые файлы и связывать их с общими библиотеками, созданными компилятором MATLAB.

Например, он будет вызываться внутри MATLAB как:

>> mbuild testProgram.c -I./distrib -L./distrib -llibMylib

создать программу, которая ссылается на общую библиотеку C, сгенерированную вами с помощью компилятора MATLAB, где distrib Каталог содержит эти сгенерированные файлы.

Некоторые другие ссылки:

Другие вопросы по тегам