Compiling V-REP and related items

The full source code of V-REP (including most plugin source codes and others) can be found here. While V-REP (v_rep) is GNU GPL licensed, the DYNAMICS PLUGIN (dynamicsPlugin) and the MESH CALCULATION PLUGIN (meshCalculationPlugin) have a specific license attached. In short, only EDUCATIONAL ENTITIES (students, teachers, professors, schools or Universities) may download and use those plugins without explicit permission. Make sure you understand and comply with the licensing conditions before doing so.

Other source code items (e.g. various projects, plugins, interfaces, etc.) are not discussed here.

V-REP and the DYNAMICS PLUGIN are Qt projects, and will require you to have Qt installed on your computer. Try to comply with following list of requirements in order to encounter least problems during compilation:

  • if possible, try using the same Qt version as the one that was used to compile the binary V-REP PRO EDU (click [Help --> About V-REP PRO EDU...] to display the Qt version)
  • for Qt projects, make sure to use the same compiler as the one that was used to compile the binary V-REP PRO EDU.
  • Ubuntu is the preferred Linux distribution.
  • you will need to download and compile QScintilla2 (C++ editor control).
  • you will need to download and install the Boost C++ library.
  • you will need to download the Lua5.1 binaries and headers.
  • Download and install V-REP PRO EDU. Then download the V-REP source code (and optionally the plugin source codes) into the V-REP PRO EDU installation folder. You should have following folder structure:

     

    When using V-REP in conjunction with a plugin, make sure to use the source code / binaries that come from the same release, in order to avoid incompatibilities. Finally, before being able to compile the V-REP project, you will have to adjust various paths in the config.pri file.

    V-REP compiles to a shared library. The default client application that loads and runs the library is vrep or vrep.exe. You can use the precompiled one, or recompile it yourself (refer to following project file: v_repClientApplication). The load operation of the library is successfull only if:

  • the client application could find all needed functions in the shared library
  • the shared library could find all shared libraries that itself relies on (e.g. the Lua shared library, etc.)
  • The easiest for you to do is to copy the compiled libraries into the V-REP PRO or V-REP PRO EDU folder, then you will be sure that V-REP should start and won't complain about missing dependencies.

    It is very important that you do not mix various Qt versions, or binaries from various compilers. If your main V-REP library was compiled with Qt X and compiler Y, then all plugins related to V-REP should also have been compiled with Qt X and compiler Y, otherwise, you will experience strange behaviours (library that cannot load, sudden crashes, etc.). This requirement can be relaxed if your plugin is not making use of any Qt function.