2.4 Platform Specific Installation Issues

2.4.3 Microsoft Windows Options

This section lists installation options for Microsoft Windows.

Using Microsoft Visual C++

If you are building OOMMF software from source using the Microsoft Visual C++ command line compiler, cl.exe, it is necessary to set up the path and some environment variables before running the compiler. There is a batch file distributed with Visual C++ that you can run to do this. The name of the file varies between Visual C++ releases, but for example may be vcvarsall.bat or setenv.cmd. For 64-bit builds you may need to include the “amd64” option on the batch file command line. You may want to set up your system so this batch file gets run automatically when you open a command window. See your compiler and system documentation for details.

Using MinGW g++

Both 32-bit and 64-bit builds are supported using the MinGW ports of g++. (The 32-bit and 64-bit versions of g++ are separate downloads.) Use a standard Windows Tcl/Tk, such as the ActiveTcl release from ActiveState. You will also need to edit the appropriate platform file to select g++ as the compiler. If you are using a 32-bit Tcl/Tk and g++, then the platform file is oommf\config\platforms\wintel.tcl. For 64-bit Tcl/Tk and g++ the platform file is oommf\config\platforms\windows-x86_64.tcl.

Using the Cygwin toolkit

The Cygwin Project is a free port of the GNU development environment to Windows, which includes the GNU C++ compiler g++ and X11. To build OOMMF within the Cygwin environment, start up a Cygwin or Cygwin64 shell and follow the usual Unix build procedure. The platform name will be cygtel or cygwin-x86_64, according to whether you are running a 32- or 64-bit Cygwin tclsh, respectively. The resulting OOMMF build requires the Cygwin environment to run, so it will need to be launched from a Cygwin shell. Moreover, OOMMF on Cygwin uses X11 as the windowing interface, so you will need to have the Cygwin port of X11 installed; typically OOMMF will be started from an X11 xterm or equivalent. Of course, you will also need the Tcl and Tk packages installed (called tcl and tcl-tk, respectively, by the Cygwin package manager). To build OOMMF from source you will need the gcc-g++, tcl-devel, and tcl-tk-devel packages and dependencies.

If you get errors saying a child process couldn’t be forked (typically with either “resource temporarily unavailable” or “Loaded to different address” error messages), then follow this procedure:

  1. 1.

    Exit all Cygwin processes

  2. 2.

    Use Windows Explorer or a Windows command shell to launch c:\cygwin\bin\ash.exe

  3. 3.

    Run /bin/rebaseall inside the ash shell.

Additional information on this problem can be found in the Cygwin documentation.

The Cygwin versions of Tcl/Tk prior to 8.6 were not threaded, so OOMMF built with Tcl/Tk 8.5 and older will likewise not be threaded. This limitation is removed with the Cygwin Tcl/Tk 8.6 release.

Setting the TCL_LIBRARY environment variable

If you encounter difficulties during OOMMF start up, you may need to set the environment variable TCL_LIBRARY. (NOTE: This is almost never necessary!)

Bring up the Control Panel (e.g., by selecting Settings|Control Panel off the Start menu), and select System. Go to the Environment tab, and enter TCL_LIBRARY as the Variable, and the name of the directory containing init.tcl for the Value, e.g.,

%SystemDrive%\Program Files\Tcl\lib\tcl8.0

Click Set and OK to finish.