簡體   English   中英

使用MATLAB Engine和g ++的C ++源代碼編譯

[英]C++ source compilation using MATLAB Engine and g++

如果您可以提供有關如何使用MATLAB Engine和g ++在Ubuntu環境中編譯c ++源代碼文件的一些指導,將對您有所幫助。

我假設您想了解使用Linux Terminal中的g ++編譯c ++代碼(稱為MATLAB引擎)的過程。 為此,請按照以下步驟操作:

  1. 在PATH變量中包括以下路徑:

    a)MATLAB的位置,即$ matlabroot / bin b)$ matlabroot / sys / os

    您可以使用命令'setenv PATH $ matlabroot / bin:$ matlabroot / sys / os:$ PATH'來執行此操作。

  2. 在命令提示符下,使用cd命令導航到cpp代碼所在的目錄。 例如,如果要編譯engdemo.cpp,則需要導航至$ matlabroot / extern / examples / eng_mat / engdemo.cpp

  3. 您需要使用所需的包含文件和庫來調用編譯器。 為此,您可以使用-I和-L開關。 請注意,順序很重要。 因此,您需要使用以下命令:

    g ++ engdemo.cpp -I“ $ matlabroot / extern / include” -L“ $ matlabroot / bin / glnxa64” -len -lmat -lmex -lut -o engdemo.o

  4. 上面的命令將生成一個目標文件engdemo.o。 要執行此操作,請使用命令./engdemo.o

    您可以參考http://www.umiacs.umd.edu/~jsp/Downloads/MatlabEngine/MatlabEngine.pdf上的文檔,以獲取有關C ++和MATLAB的更多幫助。

C / C ++中的編譯過程分為兩個階段:

首先,將源代碼轉換為帶有多個目標文件(.o或.obj)的機器代碼的編譯。

然后,將對象文件轉換為單個可執行文件(.dll或.exe)的鏈接。

運行matlab引擎的C / C ++程序需要三件事:

1>與matlab引擎兼容的編譯器。

2>引用API頭文件(對於c是'.h'或對於c ++是'.hpp')進行編譯。

3>對於外部符號鏈接,請參考庫(對於Windows為'.lib',對於Linux為'.so')。

您可以在此處看到基於linux的兼容系統編譯器。 GCC C / C ++ 4.9.x是兼容的,因此您可以使用g ++。

如該pdf所示 ,API頭文件應位於$ matlabroot / extern / include中 ,.so文件應位於$ matlabroot / bin / glnax64中 ,其中$ matlabroot是您的matlab安裝文件夾

設置環境變量

ctrl + alt + T打開您的temnial並輸入:

setenv PATH $matlabroot/bin:$matlabroot/sys/os:$PATH

然后,您可以使用以下命令轉到源文件所在的文件夾,例如$ matlabroot / extern / examples / 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選項,因為使用了應位於$ matlabroot / bin中的matlab解釋器

並且外部符號鏈接與:

g++ -o engDemo -L '$matlabroot/bin/glnax64'

小心,因為此路徑表明您使用的是x64體系結構計算機,否則,該路徑可能會略有不同。

然后,您只需執行./engDemo即可執行文件

我無法在正在使用的laptot上安裝matlab引擎,因此無法測試我給您的指令,但應以這種方式完成。

希望能幫助到你 !!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM