Я хотел бы воспользоваться этой возможностью, чтобы переформатировать приведенные там инструкции:
Чтобы скомпилировать приложение механизма MATLAB в средах Microsoft Visual Studio 9.0 (2008) или Microsoft Visual Studio 10.0 (2010), выполните шаги, описанные ниже:
Откройте Microsoft Visual Studio и выберите
Файл- ›Новый-› Проект
а затем выберите:
Visual C ++ - ›Общие -› Пустой проект
После этого введите название проекта и его местоположение в указанные текстовые области и нажмите OK.
Обратите внимание, будьте очень осторожны с этим шагом, так как он создаст папку решения и поместит туда папку проекта, поэтому вы не захотите настраивать это, заставить все работать, а затем изменить папку, так как это сломает решение, и вы Придется начинать все сначала.
Щелкните правой кнопкой мыши папку SOURCE FILES в SOLUTION EXPLORER и нажмите
Добавить - ›Новый элемент ...
Выберите файл C ++ (.cpp), введите имя файла (как enginedemo.cpp
) по своему усмотрению. Щелкните ОК.
Скопируйте код из исходного файла: engwindemo.c
и вставьте его в этот файл enginedemo.cpp
. Файл engwindemo.c
можно получить по следующему адресу:
$MATLABROOT/extern/examples/eng_mat
где $MATLABROOT
- корневой каталог MATLAB и может быть определен путем ввода команды:
matlabroot
в командной строке MATLAB.
Я бы посоветовал вам открыть его в Блокноте и, если он имеет какой-то странный формат, исправить и сохранить его, чтобы он выглядел как обычный файл C, когда вы открываете его в Блокноте (или gedit, или что-то еще).
Здесь все меняется в Visual Studio, и я надеюсь, что это прозрачно распространяется на VS Code, Eclipse или любую другую IDE, которую вы хотите использовать. Поэтому я перенумерую раздел изменения свойств римскими цифрами и исправлю порядок.
Также не забудьте нажать ENTER, а затем APPLY после внесения каждого изменения. Убедитесь в изменении, прежде чем переходить к следующему разделу. Дважды проверьте орфографию и УБЕДИТЕСЬ, что каталоги существуют на вашей платформе.
Перейдите в представление обозревателя решений, щелкните правой кнопкой мыши имя проекта и выберите СВОЙСТВА в обозревателе решений, чтобы открыть свойства проекта. Как только это окно откроется, внесите следующие изменения:
Перейдите на панель конфигураций вверху страницы свойств. Вы определенно захотите начать с этой настройки. Выберите конфигурацию, отладку или выпуск, или все конфигурации, если вы хотите, чтобы изменения применялись к ОБЕИМ отладке и выпуску, или вам придется делать их снова и снова для другой конфигурации. Что может быть не такой уж плохой идеей, поскольку отдельные параметры выпуска часто являются более оптимизированными версиями соответствующих параметров отладки. Обратите внимание, что вы можете столкнуться с серьезными проблемами при изменении значений свойств при переключении между режимами отладки и выпуска, не удивляйтесь, если IDE выйдет из строя, база данных решения будет повреждена, даже отладка не будет построена, и вам придется начинать все сначала. Сначала заставьте отладку работать, сделайте резервную копию всего решения, затем клонируйте параметры отладки для выпуска, а затем настройте параметры выпуска по одному, следя за тем, чтобы код по-прежнему строился и запускался между каждым изменением.
При компиляции в 64-битную Windows измените цель с x86 на x64 и используйте 64-битные библиотеки DLL и файлы библиотек.
Если этого нет в параметрах конфигурации в самом верху, где указано Configuration Manager (как в VS2015), следуйте инструкциям IDE ... как указано по следующей ссылке:
https://www.microsoft.com/en-us/download/details.aspx?id=55984
Под
Свойства конфигурации - ›Отладка
Добавьте следующий целевой путь в среду: (для 32-битного MATLAB)
PATH=$matlabroot\bin\win32
(для 64-битного MATLAB)
PATH=$matlabroot\bin\win64 If you want to use an absolute path instead,
используйте следующее (с точкой с запятой в конце)
PATH=C:\Program Files\MATLAB\R2013a\bin\win32; (for 32 bit MATLAB)
PATH=C:\Program Files\MATLAB\R2013a\bin\win64; (for 64 bit MATLAB)
(возможно, вы можете пропустить PATH = здесь, поскольку он, похоже, не остается там, иначе это прямо из ссылки на MATLAB)
В разделе C / C ++ General добавьте следующий каталог в поле ДОПОЛНИТЕЛЬНЫЕ КАТАЛОГИ ВКЛЮЧИТЬ:
$MATLABROOT\extern\include
i.e.
c:\Program Files\MATLAB\R2019a\extern\include;
Ставьте точку с запятой в конце каждой строки, которую вы вводите, это путь. также после файлов .lib в этом разделе.
В разделе «Предварительно скомпилированные заголовки C / C ++» выберите «Не использовать предварительно скомпилированные заголовки». (в режиме выпуска это было установлено на да)
В разделе Linker General добавьте каталог библиотеки в поле ДОПОЛНИТЕЛЬНЫЕ БИБЛИОТЕКИ: (для 32-разрядной Windows)
$MATLABROOT\extern\lib\win32\microsoft
(Для 64-битной Windows)
$MATLABROOT\extern\lib\win64\microsoft
то есть c: \ Program Files \ MATLAB \ Rxxxxx \ extern \ lib \ win (32 | 64) \ microsoft;
В разделе «Ввод компоновщика» добавьте следующие имена библиотек в поле ДОПОЛНИТЕЛЬНЫЕ ЗАВИСИМОСТИ: (используйте эту строку перед тем, что там есть) libeng.lib; libmat.lib; libmx.lib; Я не знаю, действительно ли порядок имеет значение, но в исходной ссылке они перечислены в обратном алфавитном порядке. Я слышал оба варианта.
Хорошо, теперь вы закончили изменять страницы свойств проекта VS, сохраните изменения (как вы все это делали, нажимая Применить после каждого изменения) и нажмите ОК. Окно страниц свойств закроется. На этом этапе ваш код будет построен, но по-прежнему не будет вызывать Matlab. Снова сделайте резервную копию решения.
Теперь измените СТРОКУ ПУТИ СРЕДЫ DOS / WINDOWS. Я бы сохранил решение, закрывал VS, делал резервную копию, вносил изменения в PATH и снова открывал VS и пытался создать вашу программу, запустить ее и заставить ее работать. Строку PATH необходимо изменить так, чтобы каталог bin \ win (32:64) был первым экземпляром, связанным с Matlab на пути.
Перейдите в расширенные системные настройки \ Среда. Для этого проверьте системный путь Windows, нажав Пуск - ›Щелкните правой кнопкой мыши Компьютер -› Свойства - ›Расширенные настройки системы -› Переменные среды - ›Системные переменные -› Открыть путь для редактирования. и измените переменную PATH следующим образом:
Убедитесь, что в PATH находится следующий каталог: (для 32-разрядной Windows)
$MATLABROOT\bin\win32
(Для 64-битной Windows)
$MATLABROOT\bin\win64
Это не обязательно должен быть первый каталог в пути, но он должен быть первым каталогом MATLAB в пути
PATH=c:\;....;c:\Program Files\MATLAB\Rxxxxx\bin\win(32/64);
matlab.exe
находится в \bin
; вы можете захотеть, чтобы это было на пути также только не перед записью \ bin \ win64 ...
Примечание: Если на машине установлено более одного MATLAB, каталог для целевой платформы должен быть впереди любого другого каталога MATLAB (например, при компиляции 64-битного приложения каталог в 64-битной установке MATLAB должен быть первый на ПУТИ).
Также убедитесь, что ваша целевая установка MATLAB зарегистрирована как COM-сервер:
https://www.mathworks.com/help/matlab/ref/regmatlabserver.html Для Matlab 2020a и более поздних версий попробуйте comserver ('query') и comserver ('register'). Для 2019 и более ранних версий используйте regmatlabserver () (запустите Matlab от имени администратора).
Скомпилируйте и запустите приложение.
Поэтому я включаю простое приложение, которое должно продемонстрировать его функциональность: #include stdafx.h #include engine.h #include
using namespace std;
int main()
{
Engine *eng;
eng=engOpen(""); // put a breakpoint here
cout << "...now you see it...\n"
engClose(eng); // put a breakpoint here
cout << "...now you don't!\n"
return 0;
}
path
, чтобы проверить, есть ли в списке домашний каталог libeng.dll. Дополнительная информация: msdn.microsoft.com/en-CA/library/7d83bc18.aspx - person user4581301   schedule 28.05.2016