2014年9月11日 星期四

[Solved] GNU Octave 3.8.2 can not build_packages on Win7

本文參考資料出處為: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 官網)。

沒有留言:

張貼留言