gcc — скомпилировать код на c ++, который использует движок MATLAB в Ubuntu 16.04, через g ++

Я хотел бы попросить аналитические инструкции о том, как скомпилировать код на С ++, который использует движок MATLAB в Ubuntu 16.04 — g ++.

В целях вашего ответа предположим, что для этой цели вы используете один из примеров кодов, предоставляемых установкой matlab по умолчанию.

Пожалуйста, при ответе учитывайте, что я новичок с инструментами компиляции linux, g ++ и gcc.

8

Решение

Я предполагаю, что вы хотите знать процедуру компиляции кода c ++ (который вызывает движок MATLAB) с использованием g ++ из Linux Terminal. Для этого выполните следующие действия:

  1. Включить следующие пути в переменную PATH:

    а) Местоположение MATLAB, т.е. $ matlabroot / bin
    б) $ matlabroot / sys / os

    Вы можете сделать это с помощью команды
    ‘setenv PATH $ matlabroot / bin: $ matlabroot / sys / os: $ PATH’.

  2. В командной строке перейдите в каталог, где находится код cpp, с помощью команды cd. Например, если вы компилируете engdemo.cpp, вам нужно перейти к $ matlabroot / extern / examples / eng_mat / engdemo.cpp

  3. Вам нужно вызвать компилятор с необходимыми включаемыми файлами и библиотеками. Для этого вы можете использовать ключи -I и -L. Обратите внимание, что порядок важен. Поэтому вам нужно использовать команду, как показано ниже:

    g ++ engdemo.cpp -I «$ matlabroot / extern / include» -L «$ matlabroot / bin / glnxa64» -leng -lmat -lmex -lut -o engdemo.o

  4. Приведенная выше команда создаст объектный файл engdemo.o. Чтобы выполнить это, используйте команду ./engdemo.o

    Вы можете обратиться к документу на http://www.umiacs.umd.edu/~jsp/Downloads/MatlabEngine/MatlabEngine.pdf для получения дополнительной помощи относительно C ++ и MATLAB.

4

Другие решения

Процесс компиляции в 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 на ноутбуке, который я использую, поэтому я не могу проверить инструкции, которые дал вам, но это должно быть сделано таким образом.

Надеюсь, поможет !!

1

По вопросам рекламы [email protected]