Я хотел бы попросить аналитические инструкции о том, как скомпилировать код на С ++, который использует движок MATLAB в Ubuntu 16.04 — g ++.
В целях вашего ответа предположим, что для этой цели вы используете один из примеров кодов, предоставляемых установкой matlab по умолчанию.
Пожалуйста, при ответе учитывайте, что я новичок с инструментами компиляции linux, g ++ и gcc.
Я предполагаю, что вы хотите знать процедуру компиляции кода c ++ (который вызывает движок MATLAB) с использованием g ++ из Linux Terminal. Для этого выполните следующие действия:
Включить следующие пути в переменную PATH:
а) Местоположение MATLAB, т.е. $ matlabroot / bin
б) $ matlabroot / sys / os
Вы можете сделать это с помощью команды
‘setenv PATH $ matlabroot / bin: $ matlabroot / sys / os: $ PATH’.
В командной строке перейдите в каталог, где находится код cpp, с помощью команды cd. Например, если вы компилируете engdemo.cpp, вам нужно перейти к $ matlabroot / extern / examples / eng_mat / engdemo.cpp
Вам нужно вызвать компилятор с необходимыми включаемыми файлами и библиотеками. Для этого вы можете использовать ключи -I и -L. Обратите внимание, что порядок важен. Поэтому вам нужно использовать команду, как показано ниже:
g ++ engdemo.cpp -I «$ matlabroot / extern / include» -L «$ matlabroot / bin / glnxa64» -leng -lmat -lmex -lut -o engdemo.o
Приведенная выше команда создаст объектный файл engdemo.o. Чтобы выполнить это, используйте команду ./engdemo.o
Вы можете обратиться к документу на http://www.umiacs.umd.edu/~jsp/Downloads/MatlabEngine/MatlabEngine.pdf для получения дополнительной помощи относительно C ++ и MATLAB.
Процесс компиляции в C / C ++ делится на две фазы:
Во-первых, компиляция, в которой исходный код преобразуется в машинный код с несколькими объектными файлами (.o или .obj).
Затем ссылка для преобразования объектных файлов в один исполняемый файл (.dll или .exe).
Программы на C / C ++, работающие с движком Matlab, нуждаются в трех вещах:
1> Компилятор, который совместим с движком Matlab.
2> Ссылка на заголовочные файлы API (‘. H’ для c или ‘.hpp’ для c ++) для компиляции.
3> Ссылка на библиотеки (‘. Lib’ для windows, ‘. So’ для linux) для ссылки на внешний символ.
Вы можете увидеть совместимый компилятор системы на основе Linux Вот.
GCC C / C ++ 4.9.x совместим, поэтому вы можете использовать g ++.
Как это PDF Предполагается, что файлы заголовков API должны быть там $ Matlabroot / ехЬегп / включить и .so файлы должны быть в $ Matlabroot /
бен / glnax64 где $ matlabroot ваша папка установки Matlab
Настройка переменных среды
Откройте свой темник с Ctrl + Alt + T и введите:
setenv PATH $matlabroot/bin:$matlabroot/sys/os:$PATH
Затем вы можете перейти в папку, где находится исходный файл, скажем, $ Matlabroot / ехЬегп / примеры / eng_mat / с помощью следующей команды:
cd $matlabroot/extern/examples/eng_mat/
Вам нужно сделать компиляцию с:
g++ -c engDemo.cpp -I '$matlabroot/extern/include' -leng -lmat -lmex -lut
После этого должен быть создан файл с именем engDemo.o.
Опции -leng -lmat -lmex -lut, вероятно, необходимы, помимо прочего, из-за использования интерпретатора matlab, который должен находиться в $ Matlabroot / бен
И внешний символ ссылки с:
g++ -o engDemo -L '$matlabroot/bin/glnax64'
Будьте осторожны, так как этот путь предполагает, что вы находитесь на архитектура x64 машина, если нет, путь может быть немного другим.
Затем вы можете выполнить свой файл, просто выполнив ./engDemo
Я не могу установить движок Matlab на ноутбуке, который я использую, поэтому я не могу проверить инструкции, которые дал вам, но это должно быть сделано таким образом.
Надеюсь, поможет !!