Я хотел преобразовать свой код моделирования в Matlab в C ++ и запустить его с помощью компилятора C ++, такого как Visual Studio или g ++. Я изменил свой код, чтобы успешно построить проект C ++, используя Matlab Coder.
Кодер возвращает файл .prj в верхнем каталоге проекта и десятки или сотни файлов c ++ source / header / object в каталоге dll. Я пытался открыть файлы .prj в Visual Studio 2012 или 2013 (пробовал в обеих версиях), но это не удалось, и они даже не могут открыть файл .prj.
Я позаботился о том, чтобы настроить Visual Studio как компилятор языка C ++ в Matlab, используя mex -setup.
У кого-нибудь есть идеи, как обрабатывать .prj и последующие файлы в Visual Studio или g ++? Я не хочу делать это исполняемым в данный момент; Я просто хочу запустить его с любым из компиляторов и убедиться, что он работает.
Спасибо
prj
сгенерированный файл используется для графического интерфейса MATLAB Coder, а не для Visual Studio. Если дважды щелкнуть этот файл в MATLAB, откроется графический интерфейс Coder, и вы сможете сгенерировать код, используя его.
Для простого примера использования сгенерированного кода в Visual Studio вы можете обратиться к документация.
Если вы собираетесь использовать сгенерированный код на той же платформе, на которой вы используете MATLAB, я бы рекомендовал изменить тип вывода на статическую библиотеку (LIB
) или общая библиотека (DLL
). Это приведет к тому, что код на C или C ++ будет сгенерирован, а затем скомпилирован в библиотеку с использованием указанного вами компилятора. Затем вы можете написать код, который вызывает функции, объявленные в сгенерированном заголовочном файле (ах), и ссылаться в сгенерированной библиотеке при компиляции рукописного кода.
Для Visual Studio вам нужно добавить каталог codegen, codegen/lib/<proj_name>
к пути включения и добавьте созданный файл LIB / DLL в качестве зависимости. С GCC вам нужно будет добавить тот же каталог к пути включения при компиляции кода и ссылки в библиотеке.
Вторая половина моего другой ответ имеет больше информации в нем.
В качестве альтернативы, если у вас есть C main
функция написана, вы можете установить тип вывода EXE
а также указать основную функцию чтобы MATLAB Coder генерировал код, скомпилируйте его с main
и скомпилировать автономный исполняемый файл.
У кого-нибудь есть идеи, как обращаться с .prj
я полагаю, вы должны запустить «mcc» для файла .prj
котировка
«Укажите, что mcc использует настройки, содержащиеся в указанном файле проекта.
-F project_name.prj
указать имя_проекта как имя файла проекта при вызове mcc. Эта опция позволяет файлу .prj вместе со всеми связанными с ним настройками возвращаться в mcc. Файлы проекта, созданные с помощью mcc или deploytool, могут использовать эту опцию. При использовании -F никакие другие аргументы не могут быть вызваны против mcc. «