Skip to content
Alberto edited this page Nov 4, 2022 · 22 revisions

This page provides with Build Scripts for Windows, MacOS and Linux (Ubuntu and Debian). The scripts take care of downloading, building and installing all of the dependencies, and OpenSim Core.

For each platform, you will find build instructions, a configuration section, and a troubleshooting section with solutions to the most common problems we have identified. If you find an error in the build scripts or have any problem while executing them, please, submit an Issue.

Table of Contents

Windows

Note: Tested on Windows 10 and Windows 11.

Build Instructions:

Note: Tested on Windows 10 and Windows 11.

  1. Download the build script from here.

  2. Open Windows PowerShell as Administrator and execute the script as follows:

    & 'opensim-windows-build-script.ps1'

  3. Wait until the building process has finished.

Configuration:

  1. Casadi/Tropter:

    • You can enable or disable Moco by setting the options OPENSIM_WITH_CASADI and OPENSIM_WITH_TROPTER to on or off in cmake. (You have to do this for both, opensim-core and opensim-core-dependencies).
  2. Build type:

    • You can change the debug type by changing the --config value in cmake. The values allowed are:

      • Debug: debugger symbols. No optimizations (more than 10x slower). Library names end with _d.
      • Release: No debugger symbols. Optimized.
      • RelWithDebInfo: Debugger symbols. Optimized. Bigger but not slower than Release. Choose this if unsure.
      • MinSizeRel: Minimum size. Optimized.
    • Note: The same build type should be used for opensim-core and opensim-core-dependencies to avoid mysterious errors.

Troubleshooting:

  1. Running scripts is disabled on the system:

    • Error message:

      &: File <path-to-script> cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.

    • Solution (more details on this link):

      In PowerShell, as Administrator, you can allow execution of scripts with the following command

      Set-ExecutionPolicy Unrestricted -Scope CurrentUser
      

      Once you are done, you can set the policy back to default (Recommended):

      Set-ExecutionPpolicy Restricted -Scope CurrentUser
      

Linux (Ubuntu)

Note: Tested on Ubuntu 18.04, 20.04 and 22.04, and Debian 10 and 11. These instructions should work for other distributions with some modifications (e.g., package manager, package names, etc).

Build Instructions:

  1. Download the build script from here.

  2. Open terminal and execute the script as follows:

    ./opensim-linux-build-script.sh

  3. Wait until the building process has finished.

Configuration:

  1. Build type:

    • You can change the debug type by setting the -d flag value. The values allowed are:

      • Debug: debugger symbols. No optimizations (more than 10x slower). Library names end with _d.
      • Release: No debugger symbols. Optimized.
      • RelWithDebInfo: Debugger symbols. Optimized. Bigger but not slower than Release. Choose this if unsure.
      • MinSizeRel: Minimum size. Optimized.
    • The default value is Release.

    • Example: ./opensim-linux-build-script.sh -dRelease

  2. Number of jobs (threads) used to build:

    • You can change the number of jobs used to build by setting the -j flag value. The values allowed are integer numbers >=1.

    • The default value is 4.

    • Example: ./opensim-linux-build-script.sh -j4

  3. Casadi/Tropter:

    • You can disable Moco build by setting the -s flag. This flag takes no arguments.

    • Example: ./opensim-linux-build-script.sh -s

Troubleshooting:

  1. Permission denied:

    • Error message:

      bash: ./opensim-linux-build-script.sh: Permission denied
      
    • Solution: Grant execution permission to the script:

      chmod 777 opensim-linux-build-script.sh
      
  2. Failed to load libraries when executing opensim after build:

    • Error message:

      /opt/opensim-gui/sdk/lib/libosimJavaJNI.so: libadolc.so.2: cannot open shared object file: No such file or directory.
      
    • Solution:

      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/opensim-workspace/opensim-core-dependencies-install/simbody/lib
      
  3. Build process is consuming more virtual memory than available:

    • Error message: The error message can be different depending of your OS. Here are examples of error messages in Ubuntu an Debian.

        killed: signal terminated program cc1plus
        virtual memory exhausted: Cannot allocate memory
      

      Additionally, you can confirm that the error is caused by the build process consuming too much virtual memory by executing the following command:

        `sudo dmesg | grep cc1plus`.
      

      The following line should appear (among others):

        Out of memory: Killed process <process-number> (cc1plus)...
      
    • Solution: The most probable scenarios when this error appears are:

      • You are using more jobs when executing the build script (-j flag) than your system can afford. Increasing the number of jobs increases the virtual memory consumption of the build process. The solution in this case is to decrease the number of jobs. Remember that in our script, the default number of jobs is 4, so you may need to set it to a lower value.
      • You have low virtual memory (RAM) available. The solution in this case is to increase the memory of your machine (this should be easy if your are building OpenSim in a virtual machine)
Clone this wiki locally