Проблемы, включая MATLAB "engine.h" для кода С++

Я пытаюсь запустить пример кода из MATLAB Doc, но когда я пытаюсь построить проект в Visual Studio, я получаю эту ошибку

fatal error C1083: Cannot open include file: 'engine.h': No such file or directory

Дело в том, что в Doc я не могу найти, где найти заголовок, чтобы связать его, они показывают примеры, как будто не нужно ничего делать, просто выполните

#include "engine.h";

Любые идеи о том, как решить эту проблему?

ИЗМЕНИТЬ

Я решил первую проблему, но теперь я получаю некоторые ошибки, связанные с отсутствующими libs:

1>engwindemo.obj : error LNK2019: unresolved external symbol _engClose referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxGetClassName referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engGetVariable referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engOutputBuffer referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxDestroyArray referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engEvalString referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engPutVariable referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxGetPr referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxCreateDoubleMatrix_730 referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engOpen referenced in function _main

Я устанавливаю переменную Path, как сказано в документации, устанавливает путь к lib и добавляет некоторые библиотеки, и теперь я не знаю, что еще я могу сделать. Я также перезагрузил VisualStudio, чтобы сделать изменение переменной Path эффективным.

enter image description here Спасибо заранее.

Ответ 1

Я окончательно решил проблему. Я создавал проект WIN32, а Matlab - x64, поэтому VisualStudio дает ошибки при попытке связать 64-битные платформы. Решение изменяет платформу Active Solution на x64, внутри Project Properties → Configuration Manager.

Это объясняется в следующей ссылке.

В любом случае, спасибо за ответы, они были полезны.

Итак, суммируя, чтобы компилировать и запускать код С++ в VisualStudio2008 и Matlab2010 с помощью engine.h, необходимы следующие шаги:

1.- Установить переменную пути в Advanced System Settings → переменные среды: C:\Program Files\MATLAB\R2010a\bin\win64 (или путь, где находится libeng.dll)

2.- В свойствах проекта VisualStudio, ссылку в дополнительных каталогах Include С++ → Общие: "C:\Program Files\MATLAB\R2010a\extern\include"

3.- В свойствах проекта, linker- > general, Дополнительные библиотечные каталоги: "C:\Program Files\MATLAB\R2010a\extern\lib\win64\microsoft"

4.- Добавьте следующие библиотеки в Linker- > Additional Dependencies: libeng.lib libmx.lib

5.- Измените платформу активных решений на x64 в Configuration Manager, как описано в ссылке.

Ответ 2

Добавили ли вы каталог MATLAB include в свой проект, включая путь? enter image description here. Каталог должен быть как "C:\Program Files\MATLAB\R2010a\extern\include"

Ответ 3

Если вы забыли, добавьте папку, содержащую libmat.dll libmx.dll и т.д. на ваш путь. Для меня это было:

C:\Program Files\MATLAB\R2012a\bin\win64

Ответ 4

В то время как ответ Jav_Rock полностью верен, я хочу добавить информацию об одной из точек:

1.- Установите переменную Path в Advanced System Settings → переменные среды: C:\Program Files\MATLAB\R2010a\bin\win64 (или путь, где libeng.dll)

Я потратил три часа, чтобы понять, что это значит, поэтому я хочу уточнить этот момент для будущих исследователей. Вам нужно добавить путь к библиотекам DLL MATLAB Engine в Windows. Мы можем сделать это следующим образом:

Мой компьютер → правый клик: Настройки. Открытое окно системы. Левый нижний угол: расширенные настройки системы

введите описание изображения здесь

Расширенная вкладка

введите описание изображения здесь

В переменных среды для вашего пользователя нажмите кнопку "Создать..." и добавьте этот параметр: Имя переменной: PATH Значение переменной: C:\Program Files\MATLAB\R2016a\bin\win64

Этот путь является ссылкой на то, где находится ваш libeng.dll. Важный момент: может потребоваться перезагрузка ВС или даже перезагрузка компьютера.