我想問一下關於如何在Ubuntu 16.04中通過g ++編譯使用MATLAB引擎的C++代碼的分析說明。編譯在Ubuntu 16.04中使用MATLAB Engine的C++代碼,通過g ++
出於您的回答的目的,假設您使用默認matlab安裝提供的示例代碼之一來達到此目的。
請在回答時考慮我是一名初學者,使用linux,g ++和gcc編譯工具。
我想問一下關於如何在Ubuntu 16.04中通過g ++編譯使用MATLAB引擎的C++代碼的分析說明。編譯在Ubuntu 16.04中使用MATLAB Engine的C++代碼,通過g ++
出於您的回答的目的,假設您使用默認matlab安裝提供的示例代碼之一來達到此目的。
請在回答時考慮我是一名初學者,使用linux,g ++和gcc編譯工具。
我假設你想知道從Linux終端使用g ++編譯C++代碼(調用MATLAB引擎)的過程。爲此,請按照下列步驟操作:
包含在PATH變量以下路徑:
一)的位置MATLAB即$ matlabroot/bin中 B)$ matlabroot/SYS/OS
您可以使用命令 'setenv PATH $ matlabroot/bin:$ matlabroot/sys/os:$ PATH'來執行此操作。
在命令提示符下,使用cd命令導航到cpp代碼所在的目錄。例如,如果您正在編譯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
有關C++和MATLAB的更多幫助,可以參考http://www.umiacs.umd.edu/~jsp/Downloads/MatlabEngine/MatlabEngine.pdf的文檔。
在C/C編譯過程++分兩個階段被劃分:
首先,源代碼被轉換爲與倍數機器代碼的編譯對象文件(.o或.OBJ)。
然後,將目標文件轉換爲單個可執行文件(.dll或.exe)的鏈接。
C/C++運行MATLAB發動機需要三件事節目:
1>一種編譯器,該用MATLAB引擎兼容。
2>引用API頭文件(用於c的'。h'或用於C++的'.hpp')用於編譯。
3>引用庫('。lib'for windows,'。so'for linux)用於外部符號鏈接。
您可以看到基於Linux的兼容系統編譯器here。 GCC C/C++ 4.9.x兼容,所以你可以使用g ++。
由於這pdf建議,API頭文件應該有$ matlabroot /的extern /包括和.so文件應該在$ matlabroot/ 斌/ glnax64其中$ matlabroot是您的MATLAB安裝文件夾
設置環境變量
打開與CTRL + ALT + T和類型的temnial:
setenv PATH $matlabroot/bin:$matlabroot/sys/os:$PATH
那麼你可以去到源文件所在的文件夾,假設$ matlabroot /的extern /例子/ 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'
要小心,因爲這條路sugested你是一個x64體系結構機器上,如果你不是,路徑可能會略有不同。
然後,你可以通過做./engDemo
執行文件我不能安裝在我使用的,所以我無法測試我給你的指令laptot Matlab引擎,但它應該是這樣做。
希望它有幫助!