1. 程式人生 > >設定 Matlab 的 C/C++ 編譯器

設定 Matlab 的 C/C++ 編譯器

    在進行 Matlab 與 C/C++ 混合程式設計的時候,由於 Matlab 本身沒有帶C/C++編譯器(我當前在 Debian Linux 系統下是這樣的),所以,必須要為 Matlab 配置 C/C++ 編譯器。但是,每個版本的 Matlab 只支援唯一種 C/C++ 編譯器,如果你的系統安裝了多個版本的 C/C++ 編譯器,這時就涉及到改變預設的 C/C++ 編譯器(版本)了。

    你有兩種方案:

    方案一:修改系統的預設編譯器。這時系統中的所有應用程式的編譯器都因此而被修改了。

    方案二:只修改 Matlab 當前的編譯器,也就是每次在 Matlab 中執行 mex 命令時,選擇並設定一個臨時的編譯器。這種方案的結果是隻改變了 Matlab 當前的編譯器,而不影響系統中其它應用的預設編譯器版本。當然,麻煩的地方就是每次使用時,都得設定一次。

    如何知道系統的預設編譯器的版本呢?可以在 Matlab 中鍵入:

<span style="font-size:18px;">!which gcc</span>

一、如何修改系統預設的 C/C++ 編譯器呢?

    方法是編輯系統的 $PATH 變數。即將包含著 Matlab 所支援的 C/C++ 編譯器的目錄放置在 PATH 的最前端。(如何修改該變數值,不同系統會有差異)

    如果修改了該變數值,那麼設定的編譯器將是系統的預設編譯器,當然就成為所有應用的預設編譯器了。

二、如何為當前 Matlab 選擇臨時編譯器呢?

    通過 mex 命令來修改編譯器,就是設定 varname 變數值,對於 gcc  編譯器,其值就是“GCC”,注意字母必須全大寫。例如,如果當前所支援的 gcc 版本是 4.7,且被安裝在系統的目錄 “/usr/bin/gcc-4.7” 中。為了 build 檔案 timestwo.c

,可鍵入:

copyfile(fullfile(matlabroot,'extern','examples','refbook','timestwo.c'),'.','f')
mex -v GCC='/usr/bin/gcc-4.7' timestwo.c
    當然,如前述,這種通過 mex 命令來設定的編譯器,僅在當前 Matlab 環境下有效,不會影響到系統中其它應用程式。