Skip to content
Alberto edited this page Oct 31, 2022 · 12 revisions

Build Instructions

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 starting opensim after build:

    • Error message:

      Error: While executing opensim once installed: Failed to load one or more dynamic libraries for OpenSim.
      java.langUnsatisfiedLinkError: /opt/opensim-gui/sdk/lib/libosimJavaJNI.so: libadolc.so.2: cannot open shared object file: No such file or directory.
      
    • Solution:

      Add the following two lines to the beginning of the file: /opt/opensim-gui/bin/opensim.

      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/<user>/opensim-workspace/opensim-core-dependencies/adol-c/lib64
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/<user>/opensim-workspace/opensim-core-dependencies/ipopt/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