本文參考資料出處為:http://savannah.gnu.org/bugs/?43164
症狀:
在 Windows 7 上安裝 GNU Octave 3.8.2 版本後,欲再執行 build_packages.m 來新增 Octave-forge 程式庫時,出現 "Unable to find ncurses library headers" 錯誤訊息 (如下圖),以致於無法完整地安裝 Octave-forge 程式庫。
原因:
可能是因為電腦中另外安裝的 MingGW 系統,其環境參數的設定使得 Octave 在執行 build_packages.m 時,無法參考到原已包裝在 Octave 3.8.2 的 MinGW 編譯環境,以致於 gcc 編譯程式找不到應該連結到的 ncurses 程式庫。
解決方法:
將下列指令儲存成名為 go.bat 批次檔,再將 go.bat 置於 C:\Octave\Octave-3.8.2\bin 資料夾下。以之啟動 Octave-GUI.exe 後,再於 Octave-GUI 內執行置於 C:\Octave\Octave-3.8.2\src 資料夾的 build-packages.m,即可成功地完整建立 Octave-forge 程式庫。
@echo off
Rem Find Octave's install directory through cmd.exe variables.
Rem This batch file should reside in Octaves installation subdir!
Rem
Rem This trick finds the location where the batch file resides.
Rem Note: the result ends with a backslash
set OCT_HOME=%~dp0
Rem Set up PATH. Make sure the Octave-version-specific subdir
Rem comes first. Use system environment variables for the
Rem Windows system dirs.
Rem Ghostscript is still an issue, I've left my setup for it
Rem in the line below:
set PATH=%OCT_HOME%bin;%windir%\system32;%windir%;%windir%\system32\wbem;%OCT_HOME%gs\gs9.14\bin
Rem Start Octave (this detaches octave-gui and immediately
Rem returns):
start octave-gui.exe
Rem or
REM start octave-cli.exe
Rem Close the batch file's cmd.exe window
exit
或是使用 Octave 官網上的
octave-gui.bat 來啟動 Octave 亦可。octave-gui.bat 的內容如下:
@echo off
set PATH=%CD%\bin\
start octave --force-gui -i --line-editing
exit
在使用 Octave-forge 程式庫時,要先使用 pkg load 指令將所指定的程式庫載入。例如:欲使用 read_fits_image() 函數前,須使用 pkg load fits 指令,載入 fits 程式庫 (請參考
Octave-forge 官網)。