2012-01-10 5 views
10

Я пытаюсь запустить example code из MATLAB Doc, но когда я пытаюсь построить проект в Visual Studio, я получаю эту ошибкупроблемы в том числе MATLAB «engine.h» для C++ кода

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

Тот факт, является то, что в Doc я не могу найти, где найти заголовок, чтобы связать его, они показывают примеры, как если бы не было никакой необходимости делать что-нибудь еще, просто сделать

#include "engine.h"; 

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

EDIT

я решил первую проблему, но теперь я получаю некоторые ошибки reated недостающих 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 Заранее спасибо.

ответ

11

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

Это объясняется следующим образом: link.

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

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

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

2.- в свойствах проекта в VisualStudio, ссылка в Additional Include директории C++ -> Общие сведения: «C: \ Program Files \ MATLAB \ R2010a \ extern \ include»

3.- В свойствах проекта, Linker-> общие, дополнительные каталоги библиотеки: "C: \ Program Files \ MATLAB \ R2010a \ ехЬегп \ Lib \ win64 \ Microsoft"

4.- добавить следующие библиотеки в Linker-> Дополнительные зависимости: libeng.lib libmx.lib

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

2

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

+0

нет, я посмотрю, спасибо –

+0

Но что такое каталог включения именно? Я не могу найти его внутри папок Matlab. –

+2

Как «C: \ Program Files \ MATLAB \ R2010a \ extern \ include» – WebMonster

0

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

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

0

Хотя Jav_Rock's answer совершенно правильно, я хочу, чтобы добавить информацию об одном из пунктов:

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

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

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

enter image description here

Advanced Tab

enter image description here

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

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

Смежные вопросы