Wolfram Computation Meets Knowledge

As of Version 11.3, most of the functionality of the WSMLink package is being phased out in favor of experimentally introduced functionality in the Wolfram System. >>

Compiler for SystemModeler

SystemModeler uses a C++ compiler to build executables for fast simulation of models. Simulation of models requires the installation of a compiler on your computer. If a supported compiler is already installed, it will be automatically detected and used, and no further action has to be taken.

To use functionality from Wolfram SystemModeler Link, load the package:

Click for copyable input

Installation of Supported Compilers

Windows

On Windows, SystemModeler has been fully tested with and supports the following compilers:

  • Microsoft Visual C++ 2012 (including the free Express edition).
  • Microsoft Visual C++ 2013 (including the free Express edition).
  • Microsoft Visual C++ 2015 (including the free Express edition).
    • Microsoft Visual C++ 2017 (including the free Visual C++ Build Tools edition).

    On Windows, a compiler can be installed evaluating the following command and following the shown steps:

    Click for copyable input
Mac

SystemModeler requires Apple's Xcode to be installed. Xcode is available at the Mac App Store.

On Mac, SystemModeler has been fully tested with Clang from Xcode version 6.2. It is likely that SystemModeler will work with any C++ compiler that is compatible with that version, i.e. any Clang from Xcode >= 6.2 from Apple Inc.

Instructions for installing are available here.

Linux

On Linux, SystemModeler has been fully tested with GCC/G++ 4.4 (32-bit and 64-bit). It is likely that SystemModeler will work with any C++ compiler that is compatible with that version, i.e. any GCC/G++ >= 4.4.

Instructions for installing are available here.

Compiler Verification and Configuration

This section describes the functionality available for verifying and changing the compiler settings. This is advanced functionality that most users will not need.

Verify the currently configured compiler.

In[8]:=
Click for copyable input
Out[8]=

If the verification is not successful, the result will also contain a log from a test compilation, indicating the problem with the configuration.

Show the currently selected compiler configuration.

In[12]:=
Click for copyable input
Out[12]=

The option is a list of rules specifying the compiler command, where it is found on the system, the version and advanced configuration options.

It is also possible to list all detected compilers that are supported.

In[13]:=
Click for copyable input
Out[13]=

Change the compiler configuration to use a different detected compiler.

In[14]:=
Click for copyable input
Out[14]=

Advanced Compiler Configuration

It is also possible to construct a custom compiler configuration by modifying individual configuration options.

Name
Description
"Command"name of the compiler
"Path"path to executable
"Version"compiler version
"PlatformSDKPath"path to MacOS SDK
"TargetArchitecture"32- or 64-bit architecture
"UserFlags"custom compiler flags

Advanced compiler configuration options.

The "Command" describes the type of compiler, and should be one of "g++", "clang++" or "cl".

The contents of the "Path" option are as follows for the supported compilers:

  • For Microsoft Visual C++, the directory that contains vcvarsall.bat/VsDevCmd.bat.
  • For GCC/G++, the full path to the g++ executable.
    • For Clang++, the full path to the clang++ executable.

    For Visual Studio, "Version" is given as "VS2013" or similar according to the version used.

    When using clang++ from Xcode without installing the command-line tools, it is also necessary to specify "PlatformSDKPath". The platform SDKs are usually located in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs.

    The "TargetArchitecture" is a choice between "x86_64" and "x86".

    Flags given in "UserFlags" as a single string are passed on to the compiler unchanged, allowing very fine-grained control of the selected compiler.

Related Tutorials