-
Notifications
You must be signed in to change notification settings - Fork 35
Build Instructions
- Windows
- Linux (Ubuntu)
- Mac (Upcoming)
Note: Tested on Windows 10 and Windows 11.
Note: Tested on Windows 10 and Windows 11.
-
Download the build script from here.
-
Open Windows PowerShell as Administrator and execute the script as follows:
& 'opensim-windows-build-script.ps1'
-
Wait until the building process has finished.
-
Casadi/Tropter:
- You can enable or disable Moco by setting the options
OPENSIM_WITH_CASADI
andOPENSIM_WITH_TROPTER
toon
oroff
in cmake. (You have to do this for both, opensim-core and opensim-core-dependencies).
- You can enable or disable Moco by setting the options
-
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.
-
-
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
-
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).
-
Download the build script from here.
-
Open terminal and execute the script as follows:
./opensim-linux-build-script.sh
-
Wait until the building process has finished.
-
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
-
-
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
-
-
Casadi/Tropter:
-
You can disable Moco build by setting the
-s
flag. This flag takes no arguments. -
Example:
./opensim-linux-build-script.sh -s
-
-
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
-
-
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
-
-
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)
- You are using more jobs when executing the build script (
-