Octave for Microsoft Windows: Difference between revisions

From Octave
Jump to navigation Jump to search
(→‎GNU Octave on cygwin: Fix typo in latest release date)
 
(57 intermediate revisions by 11 users not shown)
Line 1: Line 1:
:''This article is about using pre-built installers of Octave for Windows; for instructions about building it, see [[Windows Installer]].''
:''This article is about using pre-built installers of Octave for Windows; for instructions about building it, see [[Windows Installer]].''


Windows installers are available for the latest version of Octave (Octave {{Release}}, released on {{Release Date}}) from [https://ftp.gnu.org/gnu/octave/windows/ ftp.gnu.org/gnu/octave/windows/]. Users are encouraged to use the latest version unless a specific feature or requirement warrants using an older version of the software. Version specific instructions and installation notes are provided below.
{{Note|Windows installers are available for the latest version of '''Octave ({{Release}}, released on {{Release Date}})''' from https://ftpmirror.gnu.org/gnu/octave/windows/.}}


Be advised that GNU Octave is primarily developed on GNU/Linux and other [https://en.wikipedia.org/wiki/POSIX POSIX] conform systems. The ports of GNU Octave to Microsoft Windows use different approaches to get most of the original Octave and adapt it to Microsoft Windows idiosyncrasies (e.g. dynamic libraries, file paths, permissions, environment variables, GUI system, etc). Bear this in mind and don't panic if you get unexpected results. There are a lot of suggestions on the mailing lists for tuning your Octave installation. GNU Octave standalone ports for Windows are independently compiled using either the [http://mingw.org MinGW] or Microsoft Visual Studio development environments (3.6 or before).
Users are encouraged to use the latest version unless a specific feature or requirement that warrants using an older version of the software. Version specific instructions and installation notes are provided below.


__TOC__
:'''Note:''' As of version 8.3.0, '''The Octave project no longer distributes binaries for 32-bit versions of Windows'''. An alternative source for 32-bit Windows binaries of Octave is using [[Octave for Microsoft Windows#GNU Octave in MSYS2|MSYS2]]. 


= Installers for Microsoft Windows =
:'''Note:''' As of version 4.4.1, '''Octave no longer supports Windows XP'''. There may be some workarounds to get Octave installed and running in command line mode (see Bug {{bug|54662}}), but maintainers cannot provide support and troubleshooting for this beyond what has already been documented.


===Octave-{{Release}}===
=Installers for Microsoft Windows=
The easiest way to install GNU Octave on Microsoft Windows is by using [http://hg.octave.org/mxe-octave/ MXE] builds. For the current release, both 32-bit and 64-bit installers and zip archived packages (.zip and .7z formats) can be found at [https://ftp.gnu.org/gnu/octave/windows/ ftp.gnu.org/gnu/octave/windows/].


For executable installers, the user can simply run the downloaded file and follow the on-screen installation promptsIt is recommended that the installation path does not include spaces or non-ASCII characters. Shortcuts to the program will be created automatically.
The easiest way to install GNU Octave on Microsoft Windows is by using [http://hg.octave.org/mxe-octave/ MXE] buildsFor the current release, both 32-bit and 64-bit installers and zip archived packages (.zip and .7z formats) can be found at https://octave.org/download under the Windows tab.  


For the zip archives, the user should extract the file content to a directory on the harddrive (such as C:\Octave). Manual shortcuts can then be created to either the octave.bat or octave.vbs files in the main installation directory. '''Note that starting with Octave 4.4.0, the shortcuts will no longer start the graphical user interface by default.  The user needs to add --force-gui to any manual shortcuts to start Octave with the GUI. (Right-click on the shortcut, select Properties, and add --force-gui to the end of the Target field.)'''
* For executable (.exe) installers: the user can simply run the downloaded file and follow the on-screen installation prompts.  It is recommended that the installation path does not include non-ASCII characters. Shortcuts to the program will be created automatically and the post-install script will be run automatically. But with some systems, you may have to run the {{Path|post-install.bat}} file before running Octave the first time to reduce plot delays due to the Windows font cache and make the pre-installed packages visible to the system.  


====Packages====
* For the 7z/zip archives:
A selection of pre-built, octave-forge packages are prepared for all versions of the official release. If you installed Octave using the executable installer, you can confirm the package list by typing the command below at the Octave command prompt:
# Extract the file content to a directory on the harddrive (such as {{Path|C:\Octave}}). Spaces or non-ASCII characters in the path are discouraged and may cause program errors.
# Manually create a shortcut to the {{Path|octave-launch.exe}} file in the main installation directory. (Right-click on the file, select 'Create Shortcut', and move the new shortcut to your desired location.)
# If a command-line only instance of Octave is desired, the user can create another shortcut as stated above, right-click on the shortcut, select Properties, and add <code>--no-gui</code> to the end of the Target field.
# IMPORTANT: Run the {{Path|post-install.bat}} file before running Octave the first time to reduce plot delays due to the Windows font cache and make the pre-installed packages visible to the system.
# The exe installer prompts you to choose which Basic Linear Algebra Subprograms (BLAS) library to use, and creates a shortcut to a BLAS switcher program. The 7z/zip archives default to using [https://netlib.org/blas Reference BLAS].  [https://www.openblas.net OpenBLAS] is also available, and may be preferable for certain users. 7z/zip archive users wanting to change their BLAS library can manually run the switcher program located at {{Path|/mingw64/bin/blas_switch.exe}}.


  >> pkg list
* Note: versions before 7.1.0 used .vbs and .bat files to start Octave.  The {{Path|octave.bat}} file is still available in {{Path|\mingw32\bin}} or {{Path|\mingw64\bin}}, depending on the version of Octave installed, for use cases requiring it for startup.


If instead you installed Octave from the .zip archive, you need first to rebuild the package list on your local machine. (The command above will produce a blank output and packages will be inaccessible before rebuilding.) Do this by typing the following command:
==Octave Packages==
Like many software programs, Octave uses ''packages'' to optionally extend and modify its capability. These packages can be installed and loaded using the built in package management program 'pkg'. (Note that Octave does not automatically load installed packages, they must be manually loaded from within Octave by the user.)  


  >> pkg rebuild
Octave maintains a system-wide (or ''global'') package list, and a user-specific (or ''local'') package list. By default in Windows 10, local packages are located at {{Path|C:\Users\%USERNAME%\octave\}}.  (The \octave folder will be created during the first package install\update if it is not already present.)  The global packages are stored in {{Path|%OCTAVE_HOME%\mingw64\share\octave\packages\}}, and are available to all users on the machine. Specific locations on your system can be found by typing the following commands at the Octave command line:


Packages can be updated by running
    >> pkg local_list
 
    >> pkg global_list
  >> pkg update


Other packages can be installed by running
Octave versions for Windows prior to 6.1.0 defaulted to always making changes to global packages unless the user specified otherwise.  The default is now to follow the same behavior on all platforms, and for all package updates and installations to apply to local or global package locations according to whether or not the user is running with Administrative privileges (on Windows, this is usually accomplished by running as an Administrator privileged account, or starting Octave with the "Run as Administrator" option).  Alternatively, some pkg command options can force octave to try to use either the local or global packages.


  >> pkg install -forge <package name>
===Pre-installed Packages===


To install a new or updated package version manually, the package file can be downloaded from the [https://octave.sourceforge.io/packages.php Octave-Forge website]to the working directory and can be installed using:
A selection of pre-built, [[Octave Forge]] packages is included with all versions of the official Windows release.  If you followed the installation directions above, you can display a list of packages by typing the command below at the Octave command prompt:


   >> pkg install package_file_name.tar.gz
   >> pkg list


Detailed instructions for installing Octave-Forge packages are given at [http://wiki.octave.org/Octave-Forge Octave-Forge]
The output for preinstalled global packages included with version 7.1.0 when installed into {{Path|C:\Octave}} is:


    Package Name        | Version | Installation directory
    ---------------------+---------+-----------------------
                  audio  |  2.0.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\audio-2.0.4
                biosig  |  2.4.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\audio-2.4.0
        communications  |  1.2.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\communications-1.2.4
                control  |  3.4.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\control-3.4.0
        data-smoothing  |  1.3.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\data-smoothing-1.3.0
              database  |  2.4.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\database-2.4.4
              dataframe  |  1.2.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\dataframe-1.2.0
                  dicom  |  0.4.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\dicom-0.4.1
              financial  |  0.5.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\financial-0.5.3
                  fits  |  1.0.7 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\fits-1.0.7
    fuzzy-logic-toolkit  |  0.4.6 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\fuzzy-logic-toolkit-0.4.6
                    ga  |  0.10.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\ga-0.10.3
                general  |  2.1.2 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\general-2.1.2
          generate_html  |  0.3.2 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\generate_html-0.3.2
              geometry  |  4.0.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\geometry-4.0.0
                    gsl  |  2.1.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\gsl-2.1.1
                  image  |  2.14.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\image-2.14.0
    instrument-control  |  0.7.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\instrument-control-0.7.1
              interval  |  3.2.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\interval-3.2.1
                    io  |  2.6.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\io-2.6.4
        linear-algebra  |  2.2.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\linear-algebra-2.2.3
                  lssa  |  0.1.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\lssa-0.1.4
                  ltfat  |  2.3.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\ltfat-2.3.1
                mapping  |  1.4.2 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\mapping-1.4.2
                matgeom  |  1.2.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\matgeom-1.2.3
          miscellaneous  |  1.3.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\miscellaneous-1.3.0
                    nan  |  3.6.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\nan-3.6.1
                netcdf  |  1.0.14 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\netcdf-1.0.14
                  nurbs  |  1.4.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\nurbs-1.4.3
                    ocs  |  0.1.5 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\ocs-0.1.5
                octproj  |  2.0.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\octproj-2.0.1
                  optim  |  1.6.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\optim-1.6.1
            optiminterp  |  0.3.7 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\optiminterp-0.3.7
            quaternion  |  2.4.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\quaternion-2.4.0
              queueing  |  1.2.7 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\queueing-1.2.7
                signal  |  1.4.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\signal-1.4.1
                sockets  |  1.3.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\sockets-1.3.0
              sparsersb  |  1.0.9 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\sparsersb-1.0.9
                splines  |  1.3.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\splines-1.3.4
            statistics  |  1.4.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\statistics-1.4.3
                    stk  |  2.7.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\stk-2.7.0
                strings  |  1.2.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\strings-1.2.0
                struct  |  1.0.17 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\struct-1.0.17
              symbolic  |  2.9.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\symbolic-2.9.0
                tisean  |  0.2.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\tisean-0.2.3
                    tsa  |  4.6.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\tsa-4.6.3
                  video  |  2.0.2 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\video-2.0.2
                windows  |  1.6.2 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\windows-1.6.2
                zeromq  |  1.5.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\zeromq-1.5.3
                                                                                         
Note that the included packages shown above are stored in the default ''global package location'' within the Octave installation folder.  If any 'local' packages were previously installed with another version of windows, they might also appear in the list at the local location.  It is recommended that any such packages be uninstalled and reinstalled to guarantee compatibility with the current version of octave.


''Note that a security related issue in Windows XP currently prevents Octave from retrieving packages from the website automatically for installation or updates when running under that Operating System, and manual package installation is necessary to update or install new packages.''
If Octave was installed from a zip or 7z archive and you did not run the {{Path|post-install.bat}} file, you may not see any packages listed. In that case you need to run:
 
  >> pkg rebuild


== Octave 4.4.1 on cygwin==
That will force octave to look for both ''local'' and ''global'' packages in the set locations to repopulate the list of available packages. Note that  'local' packages always take precedence if the same package is present in both locations.


*'''Web-Site:''' http://cygwin.com
'''Note''': The Windows bundle includes a minimal version of Python for the symbolic package. That version of Python is not intended to be used for anything else. If you like to use Python for something different in Octave (e.g., for the pythonic package), install a full Python distribution and set the necessary environment variables (PYTHON, ...?).
*'''Maintainer:''' Marco Atzeri
*'''Latest release:''' 2018-08-17


*Latest packages:
===Package Installation and Update===


:octave-4.4.1-1
All packages can be updated to the latest version by running:
:Its announce on cygwin mailing list [http://www.cygwin.com/ml/cygwin-announce/2018-08/msg00021.html]
 
 
   >> pkg update
:octave-forge packages have each  a cygwin package
:Its announce on cygwin mailing list [https://cygwin.com/ml/cygwin-announce/2017-01/msg00078.html]
: Full cygwin package list is available here [https://cygwin.com/packages/]
: At 2017-04-06, 64 forge packages were available.
 
*To install :
:  run cygwin setup-x86.exe (for cygwin 32 bit) or  setup-x86_64.exe (for cygwin 64 bit) and select them in the Math category.
:  All the package dependencies will be also installed.
 
:Graphics is based on X and to plot you will need to start octave within xterm (or similar).
:  I recommend to install "xinit", "xlaunch" and "gnuplot". These packages will pull all the functional Xserver.
: Otherwise the only graphics will be ASCII art ;-)
 
===Notes===
 
*When building from development source (default branch)
:   "make check"
:passes almost all the tests. Only, and not substantial, failures are:
    <nowiki>
    /pub/hg/octave/src/data.cc : 8 failures due to different handling of complex Inf on sort
    /pub/hg/octave/src/syscalls.cc: 1 failure on fork. This disappears when octave is installed
    /pub/hg/octave/scripts/sparse/svds.m: 1 failure due to test sensitivity on starting point. See
    https://mailman.cae.wisc.edu/pipermail/octave-maintainers/2011-September/024715.html</nowiki>


*To build from cygwin source package, you need to install "cygport" and the relevant development libraries
Other packages can be installed by running:
    <nowiki>
    $ tar -xf octave-4.4.1-1-src.tar.xz
    $ cygport octave.cygport almostall</nowiki>


:see cygport documentation for further info.
  >> pkg install -forge <package_name>


=Older version instructions=
To install a new or updated package version manually, the package file can be downloaded from the [https://octave.sourceforge.io/packages.php Octave Forge website] to the working directory and can be installed using:
''Note that the instructions below may contain outdated links or instructions that are no longer relevant to current versions''
 
==Older MXE builds==
 
===Octave-4.2.0-4.2.2===
 
The instructions for Octave 4.2.0 - 4.2.2 are the same as for Octave 4.4.0 above. However, note that version 4.2.0 has a bug that prevents it from automatically retrieving packages from the [https://octave.sourceforge.io/packages.php Octave-Forge website] for installation or updates. Manual package installation is necessary with this version to update or install new packages on Windows.
 
To manually install a new or updated package version, the package file can be downloaded from the [https://octave.sourceforge.io/packages.php Octave-Forge website] to the working directory and can be installed using:


   >> pkg install package_file_name.tar.gz
   >> pkg install package_file_name.tar.gz


Detailed instruction of installing Octave-Forge packages is shown at [http://wiki.octave.org/Octave-Forge Octave-Forge]
Note that all of the commands above will perform ''local'' or ''global'' package installs according to the user's Administrator access level.  E.g., if an update is found for a global package with a non-elevated user account, the updated version will be installed to the ''local'' package location, leaving the old version intact in the ''global'' package location. This behavior can be changed by calling the install command with the {{Path|-global}} option. As of Octave 7.1.0 the {{Path|-global}} option also works with the {{Path|pkg update}} command. For example:


===Octave-4.0.3===
  >> pkg install -forge -global <package_name>


The easiest way to install GNU Octave on Microsoft Windows is using [http://hg.octave.org/mxe-octave/ MXE] builds. For the current 4.0. release installers and zip archived packages can be found at [https://ftp.gnu.org/gnu/octave/windows/ ftp.gnu.org/gnu/octave/windows/]. Unofficial 64 bit binary is available at "[http://www.tatsuromatsuoka.com/octave/Eng/Win/ File list of Octave for Windows]".
  >> pkg update -global


Known issue specific to windows version 4.0
Detailed instructions for installing individual Octave Forge packages are given at https://octave.sourceforge.io/packages.php.
#Both cli and gui cannot handle path name of which contains non-ascii characters. (For 3.8, cli can handle non-ascii code if codepage is properly set to the machine locale)
#nan package cannot be installed by "pkg install" commands. Workaround is to execute "setenv CC gcc" before "pkg install".


Known issue of octave starup
=GNU Octave in MSYS2=
# octave sometimes will fail to startup because of internal troubles. On such occasion, please try to delete .config\octave folder by which USERPROFILE environmental variable points. (One of the way to see value of USERPROFILE, startup command prompt and type "set")


====Packages====
[https://www.msys2.org/ MSYS2] is a collection of tools and libraries providing an easy-to-use environment for building, installing and running native Windows software. GNU Octave is available as a [https://packages.msys2.org/base/mingw-w64-octave package] in MSYS2.
Pre-built octave-forge packages are prepared for official release. If you installed Octave 4.0.3 using the executable installer you can confirm the package list by typing the command below from the Octave command prompt:


  >> pkg list
The best (and recommended) way to use Octave on Windows is to use the provided installers (see above). But for some special requirements, the version of Octave packaged by MSYS2 might be the better solution. Those special requirements might include:
* Users might want to use e.g. Octave packages that depend on third party packages not included in MXE Octave (e.g., the Pythonic package that depends on a native Windows Python installation).
* Users might need features of newer versions of packages than which are included in MXE Octave.
* ...


If you instead installed Octave from the .zip archive, you need to first rebuild the package list on your local machine. (The command above will produce a blank output.) Do this by typing the following command:
MSYS2 follows a rolling release cycle. So, its packages are most likely more up-to-date than the packages included in Octave's installer for Windows.
It includes a (working) package manager (<code>pacman</code>) that provides the option to install a much wider range of packages than what can possibly be included in Octave's installer for Windows.


  >> pkg rebuild
To use Octave in MSYS2, install the MSYS2 environment following [https://www.msys2.org/#installation their instructions]. At the <code>bash</code> shell (use e.g. "MSYS2 MinGW 64-bit" from the start menu), update the installation by <code>pacman -Syu</code>. After that, install a version of Octave that matches your environment (and the shell you are using), e.g. <code>pacman -S mingw-w64-x86_64-octave</code>.


This will install (among others), the main executables of Octave <code>octave-gui</code> (linked with Qt, i.e., including the "qt" graphics toolkit and the GUI), <code>octave-cli</code> (linked without Qt, i.e., only "fltk" and "gnuplot" graphics toolkits and no GUI), and the wrapper executable <code>octave</code> that dispatches to one of the former executables depending on the used command line switches. The Octave GUI can be started with <code>octave --gui</code> from MSYS2's <code>bash</code> shell, the command line interface (CLI) with <code>octave</code>.


Other packages can be installed by
=GNU Octave on [https://cygwin.com/ cygwin]=


  >> pkg install -forge <package name>
*'''Maintainer:''' Marco Atzeri
*'''Latest release:''' 2024-01-26


For detailed instruction of installing Octave-Forge packages is shown at [http://wiki.octave.org/Octave-Forge Octave-Forge]
*Latest packages:


For 64 bit binary distributed from the unofficial site, pre-built package are not prepared.
:octave-8.4.0-1
Please follow the instruction on the distribution page.
:Its announce on cygwin mailing list [https://cygwin.com/pipermail/cygwin-announce/2024-January/011503.html]


====gnuplot====
:Most of the Octave Forge packages have each a cygwin package.
Current octave for windows ships a not full featured gnuplot. Therefore you cannot use the full features of gnuplot graphics toolkit 
: Full cygwin package list is available here [https://cygwin.com/packages/]
(e.g. cannot use cairo based devise like "-dpdfcairo"). If you want use it, please use the following instruction
: At 2024-01-26, 51 forge packages were available.  


Download and install gnuplot if you do not have it. You can find the windows installer in the "[https://sourceforge.net/projects/gnuplot/files/gnuplot/ gnuplot web site for Files section]" The latest version is 5.0.3.
*To install :
:  run  setup-x86_64.exe (for cygwin 64 bit) and select them in the Math category.
: All the package dependencies will be also installed.


We can find path of USERPROFILE directory by
:Graphics is based on X and to plot you will need to start octave within xterm (or similar).
  >> getenv USERPROFILE
:  I recommend to install "xinit", "xlaunch" and "gnuplot". These packages will pull all the functional Xserver.  
make an .octaverc file in USERPROFILE directory by your favorite text editor and set gnuplot_binary e.g.
:  Otherwise the only graphics will be ASCII art ;-)


  gnuplot_binary 'C:\Program Files (x86)\gnuplot\bin\gnuplot.exe'
==Notes for cygwin==


Please do not forget to quote the path name by single quote (') if name of which has (a) white space(s).
* To build GNU Octave from cygwin source package, you need to install "cygport" and the relevant development libraries
gnuplot ver. 5 supports windows, wxt and qt terminal. On octave, windows terminal is default.
:<syntaxhighlight lang="bash">
If you want change it to wxt terminal, execute
tar -xf octave-8.4.0-1-src.tar.xz
cygport octave.cygport almostall
</syntaxhighlight>
:see cygport documentation at /usr/share/doc/cygport/html/manual/toc_index.html for further info.


>> setenv GNUTERM wxt
=General info=


You can of course describe it in .octaverc.
Be advised that GNU Octave is primarily developed on GNU/Linux and other [https://en.wikipedia.org/wiki/POSIX POSIX] conform systems. The ports of GNU Octave to Microsoft Windows use different approaches to get most of the original Octave and adapt it to Microsoft Windows idiosyncrasies (e.g. dynamic libraries, file paths, permissions, environment variables, GUI system, etc). Bear this in mind and don't panic if you get unexpected results. There are a lot of suggestions on the mailing lists for tuning your Octave installation. GNU Octave standalone ports for Windows are independently compiled using either the [http://mingw.org MinGW] or Microsoft Visual Studio development environments (3.6 or before).
 
==Older MinGW ports==
 
===Octave-4.0.0 ===
 
The easiest way to install GNU Octave on Microsoft Windows is using [http://hg.octave.org/mxe-octave/ MXE] builds. For the current 4.0.0 release installers can be found at [https://ftp.gnu.org/gnu/octave/windows/ ftp.gnu.org].
 
Known issues specific to windows version 4.0.0.
#Both cli and gui cannot handle path name of which contains non-ascii characters. (For 3.8, cli can handle non-ascii code if codepage is properly set to the machine locale)
 
====Packages====
Pre-build octave-forge packages are not prepared from octave-3.8 or later for windows. You can install some octave-forge packages using archived sources and build script. However, small flaws exist in current octave-4.0.0_0 distribution. Before install, correct version number of general and signal packages version to 2.0.0 and 1.3.2, respectively and comment out install io package as "#try_install io-2.2.7.tar.gz" in C:\octave\octave-4.0.0\src\build_packages.m". Then execute
 
    >> cd C:\octave\octave-4.0.0\src
    >> build_packages
    >> pkg install -forge io
 
Other octave-forge packages may be installed by
 
  >> pkg install -forge (package name)
 
For detailed instruction of installing Octave-Forge packages is shown at [http://wiki.octave.org/Octave-Forge Octave-Forge]
 
===Octave-3.8.2 ===
The site that provide previous version of octave for windows of ver. 3.8.2 (unofficial build using mxe-octave) is closed.
A mirrored binary can be downloaded at [http://www.tatsuromatsuoka.com/octave/Eng/Win/ File list of Octave for Windows
 
If you got any problems while running Windows 8 or libstdc++-6.dll errors, try this octave-gui.bat file and place it into your Octave folder (e.g. `C:/octave/octave-3.8.2`).
 
    @echo off
    set PATH=%CD%\bin\
    start octave --force-gui -i --line-editing
    exit
 
===Octave-3.6.4-mingw + octaveforge pkgs===
 
For build instructions before octave-3.8 see [[Octave_for_MinGW]] or the Octave-Forge repository [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/].
 
====Files for manual installation====
 
#Octave-3.6.4-mingw binaries tree
#* Octave3.6.4_gcc4.6.2_20130329.7z - MD5:46BD238C664E17B4B25E72A11C38163F
#: This is a 7z archive which includes a directory tree of all the binaries and libraries required for a complete octave installation (excluding octaveforge packages)
#:
#: It can be downloaded from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.4%20for%20Windows%20MinGW%20installer/ Octave Forge]
#:
#* The archive include:
#:* octave-3.6.4 including PDF documentation (built using Tatsuro Matsuka OctaveLibs and gplibs http://www.tatsuromatsuoka.com/octave/Eng/Win/)
#:* mingw32 + msys tool chain
#:* gnuplot-4.6.0
#:* fig2dev-3.2.5c
#:* ghostscript-9.0.7
#:* pstoedit-3.61
#:* OpenBLAS-v2.6.0 and ATLAS-3.8.4 based libblas alternatives
#:
#*'''Maintainer:''' Nitzan Arazi
#*'''Latest update:''' 2013-03-29
#Octaveforge pkgs, built for Octave-3.6.4-mingw
#* Octave3.6.4_gcc4.6.2_pkgs_20130331.7z - MD5:8AB5F5F88E7267FB1E47BABC29FD7FE0
#:
#: It can be downloaded from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.4%20for%20Windows%20MinGW%20installer/ Octave Forge]
#:
#: This is a 7z archive which includes additional binaries and libraries for a set of octaveforge packages.
#:
#* The included packages are:
#:* actuarial-1.1.0
#:* ad-1.0.6_patched
#:* audio-1.1.4
#:* benchmark-1.1.1
#:* bim-1.1.1
#:* bioinfo-0.1.2
#:* cgi-0.1.0
#:* civil-engineering-1.0.7
#:* combinatorics-2.0.0
#:* communications-1.1.1_patched
#:* control-2.4.2
#:* data-smoothing-1.3.0
#:* dataframe-0.9.1
#:* econometrics-1.1.1
#:* fenv-0.1.0
#:* financial-0.4.0
#:* fits-1.0.2
#:* fpl-1.3.3
#:* fuzzy-logic-toolkit-0.4.2
#:* ga-0.10.0
#:* general-1.3.2
#:* generate_html-0.1.5
#:* geometry-1.6.0
#:* gnuplot-1.0.1
#:* gsl-1.0.8
#:* ident-1.0.7
#:* image-2.0.0
#:* informationtheory-0.1.8
#:* integration-1.0.7_svn20120128
#:* io-1.2.1
#:* irsa-1.0.7
#:* java-1.2.9_patched
#:* linear-algebra-2.2.0
#:* lssa-0.1.2
#:* mapping-1.0.7
#:* mechanics-1.3.1
#:* miscellaneous-1.2.0
#:* missing-functions-1.0.2
#:* msh-1.0.6
#:* multicore-0.2.15
#:* nan-2.5.5
#:* ncarray-1.0.0
#:* nlwing2-1.2.0
#:* nnet-0.1.13
#:* nurbs-1.3.6
#:* ocs-0.1.3_svn20120128_patched
#:* octcdf-1.1.5
#:* octclip-1.0.3
#:* octgpr-1.2.0
#:* octproj-1.1.2
#:* odebvp-1.0.6
#:* odepkg-0.8.4
#:* optim-1.2.2
#:* optiminterp-0.3.4
#:* outliers-0.13.9
#:* physicalconstants-1.0.0
#:* plot-1.1.0
#:* quaternion-2.0.2
#:* queueing-1.2.1
#:* secs1d-0.0.9
#:* secs2d-0.0.8
#:* secs3d-0.0.1
#:* signal-1.2.1
#:* simp-1.1.0
#:* sockets-1.0.8_patched
#:* specfun-1.1.0
#:* special-matrix-1.0.7
#:* splines-1.1.2
#:* statistics-1.2.0
#:* strings-1.1.0_patched
#:* struct-1.0.10
#:* symband-1.0.10
#:* symbolic-1.1.0
#:* tcl-octave-0.1.8
#:* time-2.0.0
#:* tsa-4.2.4
#:* video-1.0.2_patched
#:* vrml-1.0.13_patched
#:* windows-1.2.1
#:* xraylib-1.0.8
#:* zenity-0.5.7
#:
#*'''Maintainer:''' Nitzan Arazi
#*'''Latest update:''' 2013-03-31
 
====Manual installation instructions====
#Create an installation directory of which doesn't have space chars (i.e. C:\Octave\Octave3.6.4_gcc4.6.2\). This directory is referred hereafter as <your_install_dir>.
#Extract the complete directories tree from Octave3.6.4_gcc4.6.2_20130329.7z to the installation directory  keeping the original directory structure as in the archive (you can use 7-zip tool from http://www.7-zip.org/).  Note that the archive contains Octave3.6.4_gcc4.6.2 folder, so you want to extract to the *parent* of <your_install_dir>.
#Copy octave3.6.4_gcc4.6.2.lnk to any convenient location and edit its properties respectively to point to <your_install_dir>\bin\octave.exe and <your_install_dir>\doc\octave\icons\octave-logo.ico as an icon
#:Note for windows 8 users: As a workaround for a gnulib windows 8 compatibility bug, add command line switches ' -i --line-editing' to the octave.exe shortcut (i.e. <octave-dir>\bin\octave.exe -i --line-editing)
#Copy octave3.6.4_gcc4.6.2_docs.lnk to any convenient location and edit its properties respectively to point to <your_install_dir>\doc\octave and <your_install_dir>\doc\octave\icons\octave-logo.ico as an icon.
#:At this point you can:
#: a. Launch and use octave by double-clicking the copied octave3.6.4_gcc4.6.2.lnk
#: b. Access and browse the documentation files by double-clicking the copied octave3.6.4_gcc4.6.2_docs.lnk
#Optional libblas dll replacement for optimizing the linear algebra subroutines for your CPU:
#:* The default configuration should automatically detect your cpu architecture and select an appropriately tuned library.
#:* In case the default library is not properly functioning on the actual cpu, or you wish to explore the performance with another library, you can manually replace the default one by performing the following procedures (where libblas.dll.<libblas_source> should be replaced with the full name of the desired library from the list below these instructions):
#:*# Exit octave
#:*# Delete <your_install_dir>\bin\libblas.dll
#:*# Make a copy of the desired <your_install_dir>\bin\libblas.dll.<libblas_source>
#:*# Rename the copy of the desired <your_install_dir>\bin\libblas.dll.<libblas_source> to libblas.dll
#:*  The following is a list of the available libblas.dll.<libblas_source> options:
#:*# libblas.dll.ref - reference blas implementation, very slow but most stable
#:*# libblas.dll.OpenBLAS-v2.6.0-0-54e7b37_dynamicarch_nt4 - Openblas based, up to 4 threads, detects cpu architecture and selects respective lib
#:*# libblas.dll.OpenBLAS-v2.6.0-0-54e7b37_nehalem_nt4 - Openblas based, up to 4 threads, tuned for nehalem cpu architecture
#:*# libblas.dll.OpenBLAS-v2.6.0-0-54e7b37_core2_nt4 - Openblas based, up to 4 threads, tuned for core2 cpu architecture
#:*# libblas.dll.OpenBLAS-v2.6.0-0-54e7b37_sandybridge_nt4 - Openblas based, up to 4 threads, tuned for sandybridge cpu architecture
#:*# libblas.dll.OpenBLAS-v2.6.0-0-54e7b37_atom_nt4 - Openblas based, up to 4 threads, tuned for atom cpu architecture
#:*# libblas.dll.altas-3.8.4_ht-pentium - ATLAS based libblass, tuned for older ht-pentium (compiled by Tatsuro Matsuka)
#:*# libblas.dll.altas-3.8.4_corei5 - ATLAS based libblass, tuned for older core i5 cpu (compiled by Tatsuro Matsuka)
 
====Manual installation instructions for the Octave-forge packages====
#Extract the complete directories tree from Octave3.6.4_gcc4.6.2_pkgs_20130331.7z to the installation directory (<your_install_dir>) keeping the original directory structure as in the archive (you can use 7zip tool from http://www.7-zip.org/).
#In order to update octave_packages database with your installation tree and auto-load most packages (excluding 'ad' and 'windows' which may crash octave when loaded and 'clear all' is executed), launch Octave and execute the following five rebuild commands from the octave console:
    pkg rebuild -auto
    pkg rebuild -noauto ad % may crash octave when loaded and 'clear all' is executed
    pkg rebuild -noauto nan % shadows many statistics functions
    pkg rebuild -noauto gsl % shadows some core functions
    pkg rebuild -auto java
#: Last pkg rebuild command is required in order for the java pkg entry to be moved to the top of <your_install_dir>\share\octave\octave_packages db file - thus java pkg is loaded before io pkg is loaded, and io pkg related jars are added to java class path.
#You can optionally adjust your installed packages status per your specific needs and usage by executing  the following commands:
: a. To interactively load or unload a package
pkg load <pkg_name>
: or
pkg unload <pkg_name>
: b. To disable auto-load for specific pkg <pkg_name>
pkg rebuild -noauto <pkg_name>
: c. To enable auto-load for specific pkg <pkg_name>
pkg rebuild -auto <pkg_name>
: d. To completely uninstall a package
pkg uninstall <pkg_name>
 
====Optional installation of Notepad++ as an editor (recommended)====
#Download recent Notepad++ installation package from http://notepad-plus-plus.org/ and install it on your system.
#Edit <your_install_dir>\share\octave\site\m\startup\octaverc and un-comment the line which sets octave default editor:
EDITOR('C:\Program Files\Notepad++\notepad++.exe');
edit ("editor", sprintf ("%s %%s", EDITOR ()))
edit mode async
: Note: win64 users may use the w32 programs directory:
EDITOR('C:\Program Files (x86)\Notepad++\notepad++.exe');
: Note: You may adjust the above line for the location of notepad++.exe as installed on your system.
 
====Troubleshooting====
Upon launching, some warnings may be displayed. These warnings can be ignored.
*Following warnings are about missing external tools which may reduce some of the functions of some packages. These external tools are not provided by the 7z archives in sourceforge.
warning: gmsh does not seem to be present some functionalities will be disabled
warning: dx does not seem to be present some functionalities will be disabled
*Following warning is about fstat function of the statistics package that overloads the old (to be deprecated) fstat function of octave-3.6.4
warning: function C:\Octave\3.6.4_gcc-4.6.2\share\octave\packages\statistics-1.2.0\fstat.m shadows a core library function
 
===Octave-3.6.2-mingw + octaveforge pkgs===
 
====Files for manual installation====
 
#Octave-3.6.2-mingw binaries tree
#* Octave362_gcc462_20120609.7z - MD5:1FA1F6191C151D527830722F71822312
#: This is a 7z archive which includes a directory tree of all the binaries and libraries required for a complete octave installation (excluding octaveforge packages)
#:
#: It can be downloaded from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.2%20for%20Windows%20MinGW%20installer/ Octave Forge]
 
===Octave-3.6.1-mingw + octaveforge pkgs===
 
====Files for manual installation====
 
#Octave-3.6.1-mingw binaries tree
#* Octave3.6.1_gcc4.6.2_20120303.7z - MD5:294B99B5E4D47CAA83E8940EB2918D10
#: This is a 7z archive which includes a directory tree of all the binaries and libraries required for a complete octave installation (excluding octaveforge packages)
#:
#: It can be downloaded from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.1%20for%20Windows%20MinGW%20installer/ Octave Forge]
#:
#* The archive include:
#:* octave-3.6.1 including PDF documentation (built by Tatsuro Matsuka http://www.tatsuromatsuoka.com/octave/Eng/Win/)
#:* OpenBLAS-r0.1alpha2.5 and ATLAS-3.8.4 based libblas altenatives
#:* mingw32 + msys tool chain
#:* gnuplot-4.4.4
#:* fig2dev-3.2.5c
#:* ghostscript-9.0.4
#:* pstoedit-3.60
#:
#*'''Maintainer:''' Nitzan Arazi
#*'''Latest update:''' 2012-03-03
#Octaveforge pkgs, built for Octave-3.6.1-mingw
#* Octave3.6.1_gcc4.6.2_pkgs_20120303.7z - MD5:44A85F26A8925FEC5E1F0856408C9DD5
#:
#: It can be downloaded from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.1%20for%20Windows%20MinGW%20installer/ Octave Forge]
#:
#: This is a 7z archive which includes additional binaries and libraries for a set of octaveforge packages.
#:
#* The included packages are:
#:* actuarial-1.1.0
#:* ad-1.0.6_patched
#:* audio-1.1.4
#:* benchmark-1.1.1
#:* bim-1.0.2
#:* bioinfo-0.1.2
#:* civil-engineering-1.0.7
#:* combinatorics-1.0.9
#:* communications-1.1.0_svn20120127_patched
#:* control-2.2.5
#:* data-smoothing-1.3.0
#:* dataframe-0.9.1
#:* econometrics-1.0.8
#:* fenv-0.1.0
#:* financial-0.3.2
#:* fpl-1.2.0
#:* fuzzy-logic-toolkit-0.3.0
#:* ga-0.9.8
#:* general-1.2.2
#:* generate_html-0.1.3
#:* geometry-1.4.0
#:* gnuplot-1.0.1
#:* gpc-0.1.7
#:* gsl-1.0.8
#:* ident-1.0.7
#:* image-1.0.15
#:* informationtheory-0.1.8
#:* integration-1.0.7_svn20120128
#:* io-1.0.17
#:* irsa-1.0.7
#:* java-1.2.8_patched
#:* linear-algebra-2.1.0_svn20120225
#:* mapping-1.0.7
#:* mechanics-1.2.0
#:* miscellaneous-1.0.11_svn20120127
#:* missing-functions-1.0.2
#:* msh-1.0.2
#:* multicore-0.2.15
#:* nan-2.5.2
#:* nlwing2-1.2.0
#:* nnet-0.1.13
#:* nurbs-1.3.5
#:* ocs-0.1.3_svn20120128_patched
#:* octclip-1.0.0
#:* octgpr-1.2.0
#:* odebvp-1.0.6
#:* odepkg-0.8.0_svn20120127
#:* optim-1.0.17_patched
#:* optiminterp-0.3.4_svn20120128_patched
#:* outliers-0.13.9
#:* physicalconstants-0.1.7
#:* plot-1.1.0
#:* quaternion-1.0.0
#:* queueing-1.0.0
#:* secs1d-0.0.8
#:* secs2d-0.0.8
#:* secs3d-0.0.1
#:* signal-1.1.2
#:* simp-1.1.0
#:* sockets-1.0.7_svn20120128_patched
#:* specfun-1.1.0
#:* special-matrix-1.0.7
#:* spline-gcvspl-1.0.8
#:* splines-1.0.7
#:* statistics-1.1.0_svn20120128
#:* strings-1.0.7
#:* struct-1.0.9
#:* symband-1.0.10
#:* symbolic-1.1.0
#:* tcl-octave-0.1.8
#:* time-1.0.9
#:* tsa-4.1.1
#:* video-1.0.2_patched
#:* vrml-1.0.12_svn20111014_patched
#:* windows-1.1.0
#:* xraylib-1.0.8
#:* zenity-0.5.7
#:
#*'''Maintainer:''' Nitzan Arazi
#*'''Latest update:''' 2012-03-03
 
====Manual installation instructions====
#Create an installation directory of which doesn't have space chars (i.e. C:\Octave\Octave3.6.1_gcc4.6.2\). This directory is referred hereafter as <your_install_dir>.
#Extract the complete directories tree from Octave3.6.1_gcc4.6.2_20120303.7z to the installation directory  keeping the original directory structure as in the archive (you can use 7-zip tool from http://www.7-zip.org/).  Note that the archive contains Octave3.6.1_gcc4.6.2 folder, so you want to extract to the *parent* of <your_install_dir>.
#Copy octave3.6.1_gcc4.6.2.lnk to any convenient location and edit its properties respectively to point to <your_install_dir>\bin\octave.exe and <your_install_dir>\share\octave\3.6.1\imagelib\octave-logo.ico as an icon
#Copy octave3.6.1_gcc4.6.2_docs.lnk to any convenient location and edit its properties respectively to point to <your_install_dir>\doc\octave and <your_install_dir>\share\octave\3.6.1\imagelib\octave-logo.ico as an icon.
#:At this point you can:
#: a. Launch and use octave by double-clicking the copied octave3.6.1_gcc4.6.2.lnk
#: b. Access and browse the documentation files by double-clicking the copied octave3.6.1_gcc4.6.2_docs.lnk
#Optional libblas dll replacement for optimizing the linear algebra subroutines for your CPU:
#:* The default configuration should automatically detect your cpu architecture and select an appropriately tuned library.
#:* In case the default library is not properly functioning on the actual cpu, or you wish to explore the performance with another library, you can manually replace the default one by performing the following procedures (where libblas.dll.<libblas_source> should be replaced with the full name of the desired library from the list below these instructions):
#:*# Exit octave
#:*# Delete <your_install_dir>\bin\libblas.dll
#:*# Make a copy of the desired <your_install_dir>\bin\libblas.dll.<libblas_source>
#:*# Rename the copy of the desired <your_install_dir>\bin\libblas.dll.<libblas_source> to libblas.dll
#:*  The following is a list of the available libblas.dll.<libblas_source> options:
#:*# libblas.dll.ref - reference blas implementation, very slow but most stable
#:*# libblas.dll.libopenblas_dynamicarch-r0.1alpha2.5-0-fda39c6 - Openblas based, up to 2 threads, detects cpu architecture and selects respective lib
#:*# libblas.dll.libopenblas_dynamicarch_nt4-r0.1alpha2.5-0-fda39c6 - Openblas based, up to 4 threads, detects cpu architecture and selects respective lib
#:*# libblas.dll.libopenblas_nehalemp-r0.1alpha2.5-0-fda39c6 - Openblas based, up to 2 threads, tuned for nehalem cpu architecture
#:*# libblas.dll.libopenblas_nehalemp_nt4-r0.1alpha2.5-0-fda39c6 - Openblas based, up to 4 threads, tuned for nehalem cpu architecture
#:*# libblas.dll.libopenblas_core2p-r0.1alpha2.5-0-fda39c6 - Openblas based, up to 2 threads, tuned for core2 cpu architecture
#:*# libblas.dll.libopenblas_core2p_nt4-r0.1alpha2.5-0-fda39c6 - Openblas based, up to 4 threads, tuned for core2 cpu architecture
#:*# libblas.dll.altas-3.8.4_ht-pentium - ATLAS based libblass, tuned for older ht-pentium (compiled by Tatsuro Matsuka)
#:*# libblas.dll.altas-3.8.4_corei5 - ATLAS based libblass, tuned for older core i5 cpu (compiled by Tatsuro Matsuka)
 
====Manual installation instructions for the Octave-forge packages====
#Extract the complete directories tree from Octave3.6.1_gcc4.6.2_pkgs_20120303.7z to the installation directory (<your_install_dir>) keeping the original directory structure as in the archive (you can use 7zip tool from http://www.7-zip.org/).
#In order to update octave_packages database with your installation tree and auto-load most packages (excluding 'ad' and 'windows' which may crash octave when loaded and 'clear all' is executed), launch Octave and execute the following 3 rebuild commands from the octave console:
    pkg rebuild -auto
    pkg rebuild -noauto ad windows
    pkg rebuild -noauto nan % shadows many statistics functions
    pkg rebuild -noauto gsl % shadows some core functions
    pkg rebuild -auto java
#: Last pkg rebuild command is required in order for the java pkg entry to be moved to the top of <your_install_dir>\share\octave\octave_packages db file - thus java pkg is loaded before io pkg is loaded, and io pkg related jars are added to java class path.
#You can optionally adjust your installed packages status per your specific needs and usage by executing  the following commands:
: a. To interactively load or unload a package
pkg load <pkg_name>
: or
pkg unload <pkg_name>
: b. To disable auto-load for specific pkg <pkg_name>
pkg rebuild -noauto <pkg_name>
: c. To enable auto-load for specific pkg <pkg_name>
pkg rebuild -auto <pkg_name>
: d. To completely uninstall a package
pkg uninstall <pkg_name>
====Optional installation of Notepad++ as an editor (recommended)====
#Download recent Notepad++ installation package from http://notepad-plus-plus.org/ and install it on your system.
#Edit <your_install_dir>\share\octave\site\m\startup\octaverc and un-comment the line which sets octave default editor:
EDITOR('C:\Program Files\Notepad++\notepad++.exe');
edit ("editor", sprintf ("%s %%s", EDITOR ()))
edit mode async
: Note: You may adjust the above line for the location of notepad++.exe as installed on your system.
 
====Troubleshooting====
Upon launching, some warnings may be displayed. These warnings can be ignored.
*Following warnings are about missing external tools which may reduce some of the functions of some packages. These external tools are not provided by the 7z archives in sourceforge.
warning: gmsh does not seem to be present some functionalities will be disabled
warning: dx does not seem to be present some functionalities will be disabled
*Following warning is about fstat function of the statistics package that overloads the old (to be deprecated) fstat function of octave-3.6.1
warning: function C:\Octave\3.6.1_gcc-4.6.2\share\octave\packages\statistics-1.1.0\fstat.m shadows a core library function
 
===Octave-3.6.0-mingw + octaveforge pkgs===
 
====Files for manual installation====
 
#Octave-3.6.0-mingw binaries tree
#* Octave3.6.0_gcc4.6.2_20120129.7z - MD5:53E4823B0DC5F2923C4CBCB8B60FC1B6
#: This is a 7z archive which includes a directory tree of all the binaries and libraries required for a complete octave installation (excluding octaveforge packages)
#:
#: It can be downloaded from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.0%20for%20Windows%20MinGW%20installer/Octave3.6.0_gcc4.6.2_20120129.7z/download octave forge]
#:
#* The archive include:
#:* octave-3.6.0 including PDF documentation (built by Tatsuro Matsuka http://www.tatsuromatsuoka.com/octave/Eng/Win/)
#:* mingw32 + msys tool chain
#:* gnuplot-4.4.4
#:* fig2dev-3.2.5c
#:* ghostscript-9.0.4
#:* pstoedit-3.60
#:
#*'''Maintainer:''' Nitzan Arazi
#*'''Latest update:''' 2012-01-29
#Octaveforge pkgs, built for Octave-3.6.0-mingw
#* Octave3.6.0_gcc4.6.2_pkgs_20120128.7z - MD5:93CC6207EED411BCE747193D3A8B6625
#:
#: It can be downloaded from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.0%20for%20Windows%20MinGW%20installer/Octave3.6.0_gcc4.6.2_pkgs_20120128.7z/download octave forge]
#:
#: This is a 7z archive which includes additional binaries and libraries for a set of octaveforge packages.
#:
#* The included packages are:
#:* actuarial-1.1.0
#:* ad-1.0.6_patched
#:* audio-1.1.4
#:* benchmark-1.1.1
#:* bim-1.0.2
#:* bioinfo-0.1.2
#:* civil-engineering-1.0.7
#:* combinatorics-1.0.9
#:* communications-1.1.0_svn20120127_patched
#:* control-2.2.4
#:* data-smoothing-1.2.3
#:* dataframe-0.8.2
#:* econometrics-1.0.8
#:* fenv-0.1.0
#:* financial-0.3.2
#:* fpl-1.2.0
#:* fuzzy-logic-toolkit-0.3.0
#:* ga-0.9.8
#:* general-1.2.2
#:* generate_html-0.1.3
#:* geometry-1.4.0
#:* gnuplot-1.0.1
#:* gpc-0.1.7
#:* gsl-1.0.8
#:* ident-1.0.7
#:* image-1.0.15
#:* informationtheory-0.1.8
#:* integration-1.0.7_svn20120128
#:* io-1.0.16
#:* irsa-1.0.7
#:* java-1.2.8_patched
#:* linear-algebra-2.1.0_svn20120127
#:* mapping-1.0.7
#:* mechanics-1.2.0
#:* miscellaneous-1.0.11_svn20120127
#:* missing-functions-1.0.2
#:* msh-1.0.2
#:* multicore-0.2.15
#:* nlwing2-1.2.0
#:* nnet-0.1.13
#:* nurbs-1.3.5
#:* ocs-0.1.3_svn20120128_patched
#:* octclip-1.0.0
#:* octgpr-1.2.0
#:* odebvp-1.0.6
#:* odepkg-0.8.0_svn20120127
#:* optim-1.0.17_patched
#:* optiminterp-0.3.4_svn20120128_patched
#:* outliers-0.13.9
#:* physicalconstants-0.1.7
#:* plot-1.1.0
#:* quaternion-1.0.0
#:* secs1d-0.0.8
#:* secs2d-0.0.8
#:* secs3d-0.0.1
#:* signal-1.1.2
#:* simp-1.1.0
#:* sockets-1.0.7_svn20120128_patched
#:* specfun-1.1.0
#:* special-matrix-1.0.7
#:* spline-gcvspl-1.0.8
#:* splines-1.0.7
#:* statistics-1.1.0_svn20120128
#:* strings-1.0.7
#:* struct-1.0.9
#:* symband-1.0.10
#:* symbolic-1.1.0
#:* tcl-octave-0.1.8
#:* time-1.0.9
#:* tsa-4.1.1
#:* video-1.0.2_patched
#:* vrml-1.0.12_svn20111014_patched
#:* windows-1.1.0
#:* xraylib-1.0.8
#:* zenity-0.5.7
#:
#*'''Maintainer:''' Nitzan Arazi
#*'''Latest update:''' 2012-01-28
 
====Manual installation instructions====
#Create an installation directory of which doesn't have space chars (i.e. C:\Octave\Octave3.6.0_gcc4.6.2\). This directory is referred hereafter as <your_install_dir>.
#Extract the complete directories tree from Octave3.6.0_gcc4.6.2_20120129.7z to the installation directory  keeping the original directory structure as in the archive (you can use 7-zip tool from http://www.7-zip.org/).
#Copy octave3.6.0_gcc4.6.2.lnk to any convenient location and edit its properties respectively to point to <your_install_dir>\bin\octave.exe and <your_install_dir>\share\octave\3.6.0\imagelib\octave-logo.ico as an icon
#Copy octave3.6.0_gcc4.6.2_docs.lnk to any convenient location and edit its properties respectively to point to <your_install_dir>\doc\octave and <your_install_dir>\share\octave\3.6.0\imagelib\octave-logo.ico as an icon.
#:At this point you can:
#: a. Launch and use octave by double-clicking the copied octave3.6.0_gcc4.6.2.lnk
#: b. Access and browse the documentation files by double-clicking the copied octave3.6.0_gcc4.6.2_docs.lnk
====Manual installation instructions for the Octave-forge packages====
#Extract the complete directories tree from Octave3.6.0_gcc4.6.2_pkgs_20120128.7z to the installation directory (<your_install_dir>) keeping the original directory structure as in the archive (you can use 7zip tool from http://www.7-zip.org/).
#In order to update octave_packages database with your installation tree and auto-load most packages (excluding 'ad' and 'windows' which may crash octave when loaded and 'clear all' is executed), launch Octave and execute the following 3 rebuild commands from the octave console:
    pkg rebuild -auto
    pkg rebuild -noauto ad windows
    pkg rebuild -auto java
#: Last pkg rebuild command is required in order for the java pkg entry to be moved to the top of <your_install_dir>\share\octave\octave_packages db file - thus java pkg is loaded before io pkg is loaded, and io pkg related jars are added to java class path.
#You can optionally adjust your installed packages status per your specific needs and usage by executing  the following commands:
: a. To interactively load or unload a package
pkg load <pkg_name>
: or
pkg unload <pkg_name>
: b. To disable auto-load for specific pkg <pkg_name>
pkg rebuild -noauto <pkg_name>
: c. To enable auto-load for specific pkg <pkg_name>
pkg rebuild -auto <pkg_name>
: d. To completely uninstall a package
pkg uninstall <pkg_name>
====Optional installation of Notepad++ as an editor (recommended)====
#Download recent Notepad++ installation package from http://notepad-plus-plus.org/ and install it on your system.
#Edit <your_install_dir>\share\octave\site\m\startup\octaverc and un-comment the line which sets octave default editor:
EDITOR('C:\Program Files\Notepad++\notepad++.exe');
edit ("editor", sprintf ("%s %%s", EDITOR ()))
edit mode async
: Note: You may adjust the above line for the location of notepad++.exe as installed on your system.
 
====Troubleshooting====
Upon launching, some warnings may be displayed. These warnings can be ignored.
*Following warnings are about missing external tools which may reduce some of the functions of some packages. These external tools are not provided by the 7z archives in sourceforge.
warning: gmsh does not seem to be present some functionalities will be disabled
warning: dx does not seem to be present some functionalities will be disabled
*Following warning is about fstat function of the statistics package that overloads the old (to be deprecated) fstat function of octave-3.6.0
warning: function C:\Octave\3.6.0_gcc-4.6.2\share\octave\packages\statistics-1.1.0\fstat.m shadows a core library function
 
===Octave-3.4.3-mingw + octaveforge pkgs===
 
#Octave-3.4.3-mingw (without pkgs)
#: Octave3.4.3_gcc4.5.2_20111025.7z - MD5:5AA004D933E000E762AE2AE95573ACBD - http://www.multiupload.com/KDQ1N463UW
#Octaveforge pkgs, built for Octave-3.4.3-mingw
#: Octave3.4.3_gcc4.5.2_pkgs_20111026.7z - MD5:2987F6078B4AD161F2D23634D5109D61 - http://www.multiupload.com/7U6J23CSZ6
:
:The above  archive files are now able to be downloaded from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.4.3%20for%20Windows%20MinGW%20Installer/ octave forge]
*'''Maintainer:''' Nitzan Arazi
*'''Latest update:''' 2011-10-26
*Packages are archived by 7zip. 7zip software can be download from http://www.7-zip.org/
*Octave Binaries are built using Tatsuro Matsuka OctaveLibs.zip and gplibs.zip (http://www.tatsuromatsuoka.com/octave/Eng/Win/)
 
====Troubleshooting====
Upon launching, some warnings may be displayed. The following warnings can be ignored:
*Following warning is about interpretation of logical operators (on scalars) in octave which is slightly different than matlab's interpretation.
warning: C:\Octave\3.4.3_gcc-4.5.2\share\octave\packages\integration-1.0.7\PKG_ADD: possible Matlab-style short-circuit operator
at line 9, column 32
*Following messages are from java package about loading of java classes that have been found and how to manually run a statement which will display its capabilities.
io PKG_ADD: java classes has been found and added in C:\Octave\3.4.3_gcc-4.5.2\bin
io PKG_ADD: run chk_spreadsheet_support([],3) to view io support
*Following warnings are about missing external tools which may reduce some of the functions of some packages. These external tools are not provided by the 7z archives in sourceforge.
warning: gmsh does not seem to be present some functionalities will be disabled
warning: dx does not seem to be present some functionalities will be disabled
*Following warning is about fstat function of the statistics package that overloads the old (to be deprecated) fstat function of octave-3.4.3
warning: function C:\Octave\3.4.3_gcc-4.5.2\share\octave\packages\statistics-1.0.10\fstat.m shadows a core library function
 
===Octave-3.4.2-mingw + octaveforge pkgs===
#Octave-3.4.2-mingw (without pkgs)
#:Octave3.4.2_gcc4.5.2_20110914.7z - MD5:4AA0DD4C97F73B2E9E0F7370CD8AD719 - http://www.multiupload.com/TCUHKNNH9S
#Octaveforge pkgs, built for Octave-3.4.2-mingw
#:Octave3.4.2_gcc4.5.2_pkgs_20111014.7z - MD5:49097AF3C6FC6CDB58EE83F510A50993 - http://www.multiupload.com/DCWFZOUGZA
*'''Maintainer:''' Nitzan Arazi
*'''Latest update:''' 2011-10-14
*Packages are archived by the 7zip. The 7zip software can be download from http://www.7-zip.org/
*Octave Binaries are built by Tatsuro Matsuoka (http://www.tatsuromatsuoka.com/octave/Eng/Win/)
*Octave manual (<code>octave-3.4.2.pdf.zip, octave-3.4.2.html.zip</code>) can be downloaded from http://www.tatsuromatsuoka.com/octave/Eng/Win/
 
====Installation====
 
The installation instructions are the same as for the 3.4.3 version, above.
 
====Notes====
For details, please see http://old.nabble.com/Octave-3.4.2-mingw-%2B-octaveforge-pkgs-to32394771.html
 
Upon launching, some warnings may be displayed. The following warnings can be ignored:
*Following warning is about interpretation of logical operators (on scalars) in octave which is slightly different than matlab's interpretation.
warning: C:\Octave\Octave3.4.2_gcc4.5.2\share\octave\packages\integration-1.0.7\PKG_ADD: possible Matlab-style
short-circuit operator at line 9, column 32
*Following warnings are about missing external tools which may reduce some of the functions of some packages. These external tools are not provided by the 7z archives in sourceforge.
warning: gmsh does not seem to be present some functionalities will be disabled
warning: dx does not seem to be present some functionalities will be disabled
*Following warning is about fstat function of the statistics package that overloads the old (to be deprecated) fstat function of octave-3.4.3
warning: function C:\Octave\Octave3.4.2_gcc4.5.2\share\octave\packages\statistics-1.0.10\fstat.m shadows a core library
 
 
===Octave 3.2.4 for Windows MinGW32===
 
*'''Download:''' [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.2.4%20for%20Windows%20MinGW32%20Installer/Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe/download Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe]
*'''Maintainer:''' Benjamin Lindner
*'''Latest release:''' 2010-03-25
 
====Includes====
 
*GNU Octave, version 3.2.4 (i686-pc-mingw32)
*atlas 3.8.2
*mingw32 (GCC 4.4.0 on http://www.mingw.org )
*gnuplot Version 4.4.0 specially prepared for octave
*mini-MSYS 1.0.11
*notepad++ 5.6.7 as text editor
*Some components of octave-forge packages
**actuarial-1.1.0 (New!)
**audio-1.1.4
**benchmark-1.1.1
**bim-1.0.0 (New!)
**bioinfo-0.1.2
**combinatorics-1.0.9
**communications-1.0.10
**control-1.0.11
**data-smoothing-1.2.0
**econometrics-1.0.8
**fenv-0.1.0 (New!)
**financial-0.3.2
**fixed-0.7.10
**fpl-1.0.0 (New!)
**ga-0.9.7
**general-1.2.0 (updated)
**generate_html-0.1.2 (New!)
**gnuplot-1.0.1 (New!)
**gpc-0.1.7
**gsl-1.0.8
**ident-1.0.7
**image-1.0.10
**informationtheory-0.1.8
**integration-1.0.7
**io-1.0.11 (updated)
**irsa-1.0.7
**java-1.2.7 (New!)
**jhandles-0.3.5 (New!)
**linear-algebra-1.0.8
**mapping-1.0.7
**miscellaneous-1.0.9
**missing-functions-1.0.2
**msh-1.0.0 (New!)
**nlwing2-1.1.1 (New!)
**nnet-0.1.10
**nurbs-1.0.3 (New!)
**ocs-0.0.4 (New!)
**oct2mat-1.0.7 (New!)
**octcdf-1.0.17 (updated 1.0.17+)
**octgpr-1.1.5 (New!)
**odebvp-1.0.6
**odepkg-0.6.10 (updated)
**optim-1.0.12 (updated)
**optiminterp-0.3.2
**outliers-0.13.9
**physicalconstants-0.1.7
**plot-1.0.7
**quaternion-1.0.0
**signal-1.0.10
**simp-1.1.0 (New!)
**sockets-1.0.5
**specfun-1.0.8
**special-matrix-1.0.7
**spline-gcvspl-1.0.8 (New!)
**splines-1.0.7
**statistics-1.0.9
**strings-1.0.7
**struct-1.0.7
**symband-1.0.10 (New!)
**symbolic-1.0.9
**time-1.0.9
**video-1.0.2 (New!)
**windows-1.0.8(updated to 1.0.8+)
**zenity-0.5.7
 
====Notes====
*Although there are some remaining known issues, some bugs reported to the octave-3.2.3 have been corrected. In addition, useful octave-forge packages are added (Java, Jhandles, ....). Please see [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.2.4%20for%20Windows%20MinGW32%20Installer/RELEASE_NOTES-3.2.4.txt/download RELEASE_NOTES.txt] for details: 
*Default Octave install folder changed to e.g. <code>C:\Octave\3.2.4_gcc-4.4.0\</code>.
*:If you have installed octave in a folder where the path name has whitespace, for example, <code>C:\Program Files\</code>, 'pkg install (package name)' command '''will fail''': See http://sourceforge.net/mailarchive/message.php?msg_name=4A1AF9EF.1000005@hotmail.com for details
 
'''Additional important topics found after the release:'''
*It is reported that the oct2mat octave-forge package affects plot related commands. The purpose of the package is to convert m-file into matlab-compatible coding style. Please see the documentation of the octave-forge (oct2mat - freetb4matlab) from http://octave.sourceforge.net/functions_by_package.php)
**Report for this problem: http://old.nabble.com/Re:-Octave-3.2.4-mingw32-available-p28053703.html
**Explanation of the problem: http://old.nabble.com/Re:-Octave-3.2.4-mingw32-available-p28090303.html
**Realistic solution at this moment, do not install the oct2mat package when you install octave with octave-forge packages if you do not use this package. Another solution is to execute
      pkg rebuild -noauto oct2mat
::at the octave prompt and then restart octave. The operation results in the oct2mat package not to be auto-loaded in startup. When you want to use oct2mat, execute
      pkg load oct2mat
*The plot octave-forge package still have ginput code although the ginput function is now merge into octave itself. Therefore conflict occur if the plot package is installed. To avoid this problem, rename 'ginput.m' in the folder <code>..\Octave\3.2.4_gcc-4.4.0\share\octave\packages\plot-1.0.7</code>, for example ginput.ob.m. In some computers which has one core CPU, response of ginput is very slow. In the case, modify '__gnuplot_ginput__.m' according to the following thread. http://old.nabble.com/ginput-on-Octave-3.2.4-mingw32-to28093888.html
*From gnuplot-4.4.0, the default terminal of gnuplot for windows is the wxt terminal. Some users may set the GNUTERM environmental variable for the windows terminal being default. The gnuplot for windows allows to set GNUTERM to 'win' (abbreviated form) but octave does not recognize the abbreviated form for terminal name. If one would like set GNUTERM to windows terminal, one should specify it as 'windows' (full form) but not 'win' (abbreviated form). In detail see the following thread: http://old.nabble.com/flicking-problem-again-Octave-3.2.4-mingw32-td28038688.html
 
==Older Octave versions with Visual Studio==
 
Octave binaries compiled with Microsoft Visual Studio are available for download from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.4%20for%20Windows%20Microsoft%20Visual%20Studio/ Octave-Forge site]. These binaries come in the form of an easy-to-use installer (created with [http://nsis.sourceforge.net/ NSIS]) and are provided in 2 flavors: pre-compiled version for Visual Studio 2008 and for Visual Studio 2010.
 
These binaries do not include the Microsoft Visual C++ compiler. This must be installed separately, but is only required if you plan to compile and link source code against the pre-compiled octave release. If the Visual C++ compiler is not present on the target system, then the Visual C++ runtime libraries must be installed prior the installation of these binaries. These runtime libraries are support libraries that are required by any code compiled with the Visual C++ compiler. They can be downloaded for free from the Microsoft download site:
* [http://www.microsoft.com/download/en/details.aspx?id=5582 Visual C++ 2008 runtime libraries]
* [http://www.microsoft.com/download/en/details.aspx?id=8328 Visual C++ 2010 runtime libraries]
Note that if you already installed other software on your system, there is a possibility that these runtime libraries are already present. Search for a files named msvcr90.dll (Visual Studio 2008) or msvcr100.dll (Visual Studio 2010) in the %WINDIR% directory (usually C:\WINDOWS).
 
===Installation===
 
The pre-compiled versions for Visual Studio come in the form of a self-installing executable. Simply download the executable, run it and follow the installer instructions. To avoid possible problems with white spaces in the octave paths, it is '''strongly recommended''' to install octave in a directory that do not contain any white spaces.
 
Octave-Forge packages are not installed by default. To install packages, expand the section "Octave Forge" in the component selection page of the installer and select the packages you wish to install. Note that installed packages are not loaded by default. To use the packages, you still need to load them into octave.
 
===Printing (installing Ghostscript)===
 
In order to use the {{Codeline|print}} command ghostscript must be installed.
The installer may be obtained at
[http://sourceforge.net/projects/ghostscript/ sourceforge].
 
The instructions below assume the GLP version of Ghostscript is installed with
the Destination directory {{Codeline|<nowiki>C:\Program Files (x86)\GPLGS\</nowiki>}}.
The Destination directory may be different for 32 bit and 64 bit windows and can also
change for different versions of Ghostscript.  Therefore, it is important that the user
make note of the Destination directory used to install Ghostscript and use it in place of
the Destination directory used in these instructions.
 
In order for Octave to find Ghostscript, the directory containing Ghostscript's command line
program must be in the command shell's path.  The name of Ghostscript's command
line program may vary.  Some examples are {{Codeline|gswin32c.exe}}, {{Codeline|gswin64c.exe}},
{{Codeline|gs.exe}}, and {{Codeline|mgs.exe}}.
To directory containing Ghostscript's command line program may either be added to the command
shell's using Windows Control Panel, or by having Octave modify the {{Codeline|path}} variable to
include the directory where Ghostscript's command line programs resides.
 
For the latter, to following lines may be placed in the {{Codeline|<nowiki>~/.octaverc</nowiki>}}
file (where {{Codeline|~}} indicates the user's home folder).
The variable {{Codeline|<nowiki>gs_path</nowiki>}} should be set to the Destination
directory where Ghostscript was installed.
 
  cmd_path = getenv ("path");
  gs_path = 'C:\Program Files (x86)\GPLGS\';
  if (isempty (strfind (cmd_path, gs_path)))
    setenv ('path', strcat (cmd_path, pathsep (), gs_path));
  endif
 
In this case, the value of {{Codeline|gs_path}} has been set to the location of Ghostscript's command
line program for the GPL's 8.15 version of Ghostscript.  The location for other versions may differ.
Please determine the location of the installed Ghostscript command line program and make the needed
adjustments to these instructions.
 
To set the path via the Control Panel,
 
* Go to '''Control Panel''' --> '''System and Security''' --> '''System'''
* Click '''Advanced System Settings'''
* Click '''Environment Variables'''
* In the '''System Variables''' area, locate the Path variable, highlight it and click '''Edit'''.
* Add the Destination directory where Ghostscript is installed and confirm the change by clickiing '''OK''', '''OK''', '''OK'''.
 
If the 64 bit version of Ghostscript is installed, Octave will not automatically detect it.  To use the 64 bit version an
option telling Octave about it must be passed to the {{Codeline|print}} command.  For example to produce PDF
output for a figure, using the 64 bit version of Ghostscript, the command below may be used.
 
  print -Ggswin64c.exe figure.pdf
 
At this point most of Octave's printing functionality should work.  When output is
produced using the {{Codeline|print}} command the warnings below will be given.
 
  warning: print.m: epstool binary is not available.
  Some output formats are not available.
  warning: print.m: fig2dev binary is not available.
  Some output formats are not available.
  warning: print.m: pstoedit binary is not available.
  Some output formats are not available.
 
For the {{Codeline|print}} command to be fully functional, each of these utilities will also need to be installed,
and their locations added to the Path variable via either the Control Panel
or Octave's {{Codeline|<nowiki>~/.octaverc</nowiki>}} file.
 
===Using the Visual C++ compiler with Octave===
 
As of version 3.6.1, the Microsoft Visual C++ compiler is not automatically detected. If you need to use it from octave (for instance to compile a MEX, OCT file, and building packages), then you must configure your system by updating the appropriate environment variables: '''%PATH%''', '''%INCLUDE%''' and '''%LIB%'''. One way to achieve this easily is to call the vcvarsall.bat script (from the Visual C++ installation directory) prior executing octave. You can for instance automate this by creating a batch script with the following content (adapt paths to your actual installation):
 
call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
"C:\Octave-3.6.1\bin\octave.exe"
 
===Octave 3.6.4===
 
====Download====
[http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.4%20for%20Windows%20Microsoft%20Visual%20Studio/ Octave-Forge]
 
====Content====
* Octave 3.6.4
* OpenBLAS-0.2.2 (dynamic architectures, up to 4 threads)
* ATLAS 3.8.4 single-threaded and multi-threaded (2 threads)
* All required libraries
* Gnuplot 4.4.4
* FLTK
* 82 packages from Octave-Forge (Must be installed through the Octave installer, see README: 3. Content)
 
===Octave 3.6.2===
 
====Download====
[http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.2%20for%20Windows%20Microsoft%20Visual%20Studio/ Octave-Forge]
 
====Content====
* Octave 3.6.2
* OpenBLAS-0.1.1 (dynamic architectures, up to 4 threads)
* ATLAS 3.8.4 single-threaded and multi-threaded (2 threads)
* All required libraries
* [https://github.com/goffioul/QtHandles QtHandles]
* Octave GUI (experimental, compiled from development sources)
* Gnuplot 4.4.4
* 72 packages from Octave-Forge (see README: 3. Content)
 
===Octave 3.6.1===
 
====Download====
[http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.1%20for%20Windows%20Microsoft%20Visual%20Studio/ Octave-Forge]
 
====Content====
* Octave 3.6.1
* ATLAS 3.8.4 single-threaded (SSE/SSE2/SSE3) and multi-threaded (SSE3, 2 threads)
* All required libraries
* [https://github.com/goffioul/QtHandles QtHandles]
* Octave GUI (experimental, compiled from development sources)
* Gnuplot 4.4.4
* 72 packages from Octave-Forge
 
 
===Alternative===
In addition to the instructions provided in the Octave manual and Octave-Forge repository, a basic toolkit for building Octave in windows using the MSVC compiler has been produced by Michael Goffioul. It consists of a set of scripts that can be used to compile Octave and its dependencies.  


A pre-compiled (with VS2010) version of everything has also been provided, so it is not necessary to recompile everything from scratch. The files can be found at: http://dl.dropbox.com/u/45539519/octave-build2.zip and http://dl.dropbox.com/u/45539519/VC10Libs.zip
=See also=


Note that this is not a enterprise-level SDK, so don't try to start an enterprise with it.
* [[Octave for Microsoft Windows (outdated)]] for older instructions.


[[Category:Installation]]
[[Category:Installation]]
[[Category:Building]]
[[Category:Building]]
[[Category:Microsoft Windows]]
[[Category:Microsoft Windows]]

Latest revision as of 14:53, 13 May 2024

This article is about using pre-built installers of Octave for Windows; for instructions about building it, see Windows Installer.
Info icon.svg
Windows installers are available for the latest version of Octave (9.2.0, released on June 1, 2024) from https://ftpmirror.gnu.org/gnu/octave/windows/.

Users are encouraged to use the latest version unless a specific feature or requirement that warrants using an older version of the software. Version specific instructions and installation notes are provided below.

Note: As of version 8.3.0, The Octave project no longer distributes binaries for 32-bit versions of Windows. An alternative source for 32-bit Windows binaries of Octave is using MSYS2.
Note: As of version 4.4.1, Octave no longer supports Windows XP. There may be some workarounds to get Octave installed and running in command line mode (see Bug #54662), but maintainers cannot provide support and troubleshooting for this beyond what has already been documented.

Installers for Microsoft Windows[edit]

The easiest way to install GNU Octave on Microsoft Windows is by using MXE builds. For the current release, both 32-bit and 64-bit installers and zip archived packages (.zip and .7z formats) can be found at https://octave.org/download under the Windows tab.

  • For executable (.exe) installers: the user can simply run the downloaded file and follow the on-screen installation prompts. It is recommended that the installation path does not include non-ASCII characters. Shortcuts to the program will be created automatically and the post-install script will be run automatically. But with some systems, you may have to run the post-install.bat file before running Octave the first time to reduce plot delays due to the Windows font cache and make the pre-installed packages visible to the system.
  • For the 7z/zip archives:
  1. Extract the file content to a directory on the harddrive (such as C:\Octave). Spaces or non-ASCII characters in the path are discouraged and may cause program errors.
  2. Manually create a shortcut to the octave-launch.exe file in the main installation directory. (Right-click on the file, select 'Create Shortcut', and move the new shortcut to your desired location.)
  3. If a command-line only instance of Octave is desired, the user can create another shortcut as stated above, right-click on the shortcut, select Properties, and add --no-gui to the end of the Target field.
  4. IMPORTANT: Run the post-install.bat file before running Octave the first time to reduce plot delays due to the Windows font cache and make the pre-installed packages visible to the system.
  5. The exe installer prompts you to choose which Basic Linear Algebra Subprograms (BLAS) library to use, and creates a shortcut to a BLAS switcher program. The 7z/zip archives default to using Reference BLAS. OpenBLAS is also available, and may be preferable for certain users. 7z/zip archive users wanting to change their BLAS library can manually run the switcher program located at /mingw64/bin/blas_switch.exe.
  • Note: versions before 7.1.0 used .vbs and .bat files to start Octave. The octave.bat file is still available in \mingw32\bin or \mingw64\bin, depending on the version of Octave installed, for use cases requiring it for startup.

Octave Packages[edit]

Like many software programs, Octave uses packages to optionally extend and modify its capability. These packages can be installed and loaded using the built in package management program 'pkg'. (Note that Octave does not automatically load installed packages, they must be manually loaded from within Octave by the user.)

Octave maintains a system-wide (or global) package list, and a user-specific (or local) package list. By default in Windows 10, local packages are located at C:\Users\%USERNAME%\octave\. (The \octave folder will be created during the first package install\update if it is not already present.) The global packages are stored in %OCTAVE_HOME%\mingw64\share\octave\packages\, and are available to all users on the machine. Specific locations on your system can be found by typing the following commands at the Octave command line:

   >> pkg local_list
   >> pkg global_list

Octave versions for Windows prior to 6.1.0 defaulted to always making changes to global packages unless the user specified otherwise. The default is now to follow the same behavior on all platforms, and for all package updates and installations to apply to local or global package locations according to whether or not the user is running with Administrative privileges (on Windows, this is usually accomplished by running as an Administrator privileged account, or starting Octave with the "Run as Administrator" option). Alternatively, some pkg command options can force octave to try to use either the local or global packages.

Pre-installed Packages[edit]

A selection of pre-built, Octave Forge packages is included with all versions of the official Windows release. If you followed the installation directions above, you can display a list of packages by typing the command below at the Octave command prompt:

  >> pkg list

The output for preinstalled global packages included with version 7.1.0 when installed into C:\Octave is:

   Package Name         | Version | Installation directory
   ---------------------+---------+-----------------------
                 audio  |   2.0.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\audio-2.0.4
                biosig  |   2.4.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\audio-2.4.0
        communications  |   1.2.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\communications-1.2.4
               control  |   3.4.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\control-3.4.0
        data-smoothing  |   1.3.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\data-smoothing-1.3.0
              database  |   2.4.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\database-2.4.4
             dataframe  |   1.2.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\dataframe-1.2.0
                 dicom  |   0.4.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\dicom-0.4.1
             financial  |   0.5.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\financial-0.5.3
                  fits  |   1.0.7 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\fits-1.0.7
   fuzzy-logic-toolkit  |   0.4.6 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\fuzzy-logic-toolkit-0.4.6
                    ga  |  0.10.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\ga-0.10.3
               general  |   2.1.2 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\general-2.1.2
         generate_html  |   0.3.2 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\generate_html-0.3.2
              geometry  |   4.0.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\geometry-4.0.0
                   gsl  |   2.1.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\gsl-2.1.1
                 image  |  2.14.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\image-2.14.0
    instrument-control  |   0.7.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\instrument-control-0.7.1
              interval  |   3.2.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\interval-3.2.1
                    io  |   2.6.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\io-2.6.4
        linear-algebra  |   2.2.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\linear-algebra-2.2.3
                  lssa  |   0.1.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\lssa-0.1.4
                 ltfat  |   2.3.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\ltfat-2.3.1
               mapping  |   1.4.2 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\mapping-1.4.2
               matgeom  |   1.2.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\matgeom-1.2.3
         miscellaneous  |   1.3.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\miscellaneous-1.3.0
                   nan  |   3.6.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\nan-3.6.1
                netcdf  |  1.0.14 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\netcdf-1.0.14
                 nurbs  |   1.4.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\nurbs-1.4.3
                   ocs  |   0.1.5 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\ocs-0.1.5
               octproj  |   2.0.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\octproj-2.0.1
                 optim  |   1.6.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\optim-1.6.1
           optiminterp  |   0.3.7 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\optiminterp-0.3.7
            quaternion  |   2.4.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\quaternion-2.4.0
              queueing  |   1.2.7 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\queueing-1.2.7
                signal  |   1.4.1 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\signal-1.4.1
               sockets  |   1.3.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\sockets-1.3.0
             sparsersb  |   1.0.9 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\sparsersb-1.0.9
               splines  |   1.3.4 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\splines-1.3.4
            statistics  |   1.4.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\statistics-1.4.3
                   stk  |   2.7.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\stk-2.7.0
               strings  |   1.2.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\strings-1.2.0
                struct  |  1.0.17 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\struct-1.0.17
              symbolic  |   2.9.0 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\symbolic-2.9.0
                tisean  |   0.2.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\tisean-0.2.3
                   tsa  |   4.6.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\tsa-4.6.3
                 video  |   2.0.2 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\video-2.0.2
               windows  |   1.6.2 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\windows-1.6.2
                zeromq  |   1.5.3 | C:\Octave\octave-7.1.0-w64\mingw64\share\octave\packages\zeromq-1.5.3
                                                                                          

Note that the included packages shown above are stored in the default global package location within the Octave installation folder. If any 'local' packages were previously installed with another version of windows, they might also appear in the list at the local location. It is recommended that any such packages be uninstalled and reinstalled to guarantee compatibility with the current version of octave.

If Octave was installed from a zip or 7z archive and you did not run the post-install.bat file, you may not see any packages listed. In that case you need to run:

  >> pkg rebuild

That will force octave to look for both local and global packages in the set locations to repopulate the list of available packages. Note that 'local' packages always take precedence if the same package is present in both locations.

Note: The Windows bundle includes a minimal version of Python for the symbolic package. That version of Python is not intended to be used for anything else. If you like to use Python for something different in Octave (e.g., for the pythonic package), install a full Python distribution and set the necessary environment variables (PYTHON, ...?).

Package Installation and Update[edit]

All packages can be updated to the latest version by running:

  >> pkg update

Other packages can be installed by running:

  >> pkg install -forge <package_name>

To install a new or updated package version manually, the package file can be downloaded from the Octave Forge website to the working directory and can be installed using:

  >> pkg install package_file_name.tar.gz

Note that all of the commands above will perform local or global package installs according to the user's Administrator access level. E.g., if an update is found for a global package with a non-elevated user account, the updated version will be installed to the local package location, leaving the old version intact in the global package location. This behavior can be changed by calling the install command with the -global option. As of Octave 7.1.0 the -global option also works with the pkg update command. For example:

  >> pkg install -forge -global <package_name>
  >> pkg update -global

Detailed instructions for installing individual Octave Forge packages are given at https://octave.sourceforge.io/packages.php.

GNU Octave in MSYS2[edit]

MSYS2 is a collection of tools and libraries providing an easy-to-use environment for building, installing and running native Windows software. GNU Octave is available as a package in MSYS2.

The best (and recommended) way to use Octave on Windows is to use the provided installers (see above). But for some special requirements, the version of Octave packaged by MSYS2 might be the better solution. Those special requirements might include:

  • Users might want to use e.g. Octave packages that depend on third party packages not included in MXE Octave (e.g., the Pythonic package that depends on a native Windows Python installation).
  • Users might need features of newer versions of packages than which are included in MXE Octave.
  • ...

MSYS2 follows a rolling release cycle. So, its packages are most likely more up-to-date than the packages included in Octave's installer for Windows. It includes a (working) package manager (pacman) that provides the option to install a much wider range of packages than what can possibly be included in Octave's installer for Windows.

To use Octave in MSYS2, install the MSYS2 environment following their instructions. At the bash shell (use e.g. "MSYS2 MinGW 64-bit" from the start menu), update the installation by pacman -Syu. After that, install a version of Octave that matches your environment (and the shell you are using), e.g. pacman -S mingw-w64-x86_64-octave.

This will install (among others), the main executables of Octave octave-gui (linked with Qt, i.e., including the "qt" graphics toolkit and the GUI), octave-cli (linked without Qt, i.e., only "fltk" and "gnuplot" graphics toolkits and no GUI), and the wrapper executable octave that dispatches to one of the former executables depending on the used command line switches. The Octave GUI can be started with octave --gui from MSYS2's bash shell, the command line interface (CLI) with octave.

GNU Octave on cygwin[edit]

  • Maintainer: Marco Atzeri
  • Latest release: 2024-01-26
  • Latest packages:
octave-8.4.0-1
Its announce on cygwin mailing list [1]
Most of the Octave Forge packages have each a cygwin package.
Full cygwin package list is available here [2]
At 2024-01-26, 51 forge packages were available.
  • To install :
run setup-x86_64.exe (for cygwin 64 bit) and select them in the Math category.
All the package dependencies will be also installed.
Graphics is based on X and to plot you will need to start octave within xterm (or similar).
I recommend to install "xinit", "xlaunch" and "gnuplot". These packages will pull all the functional Xserver.
Otherwise the only graphics will be ASCII art ;-)

Notes for cygwin[edit]

  • To build GNU Octave from cygwin source package, you need to install "cygport" and the relevant development libraries
tar -xf octave-8.4.0-1-src.tar.xz 
cygport octave.cygport almostall
see cygport documentation at /usr/share/doc/cygport/html/manual/toc_index.html for further info.

General info[edit]

Be advised that GNU Octave is primarily developed on GNU/Linux and other POSIX conform systems. The ports of GNU Octave to Microsoft Windows use different approaches to get most of the original Octave and adapt it to Microsoft Windows idiosyncrasies (e.g. dynamic libraries, file paths, permissions, environment variables, GUI system, etc). Bear this in mind and don't panic if you get unexpected results. There are a lot of suggestions on the mailing lists for tuning your Octave installation. GNU Octave standalone ports for Windows are independently compiled using either the MinGW or Microsoft Visual Studio development environments (3.6 or before).

See also[edit]