Ошибка: 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
Каталог содержит эти сгенерированные файлы.
Некоторые другие ссылки: