Tuesday, 13 December 2011

Installing Player/Stage in Ubuntu 11.10 (Oneiric Ocelot)

This entry is my guide to installing Player/Stage on Ubuntu 11.04 updated for the next version of Ubuntu following what I learnt here.


If you have any problems or questions that aren't addressed here then I recommend you email the playerstage users mailing list.

These instructions are for Player 3.0.2 and Stage 4.0.0 which are the most recent stable versions at the time of writing this guide.
It helps to have a computer which you have sudo rights to. If the computer is networked and you can't install stuff on it then ask the network administrator to install playerstage for you, alternatively you can install Player/Stage into your home director, this is also described below.

Setup

  1. First download Player and Stage.
  2. extract the tar.gz files. Right click on the icon of the thing you just downloaded and select "extract here".

Installing Dependencies


Player/Stage has a lot of dependencies, but they can be installed with Ubuntu software centre reasonably easily.
  1. To open Ubuntu software centre (if you don't know how) click the ubuntu logo in the very top left of the screen and start typing ubuntu. It should come up as one of the options.
  2. The following dependencies need to be installed:
    • pkg-config
    • cmake
    • FLTK 1.1.x
    • OpenGL
    • libpng
    • ltdl (Libtool)
    • boost threads
    • boost signals
    • STL Runtime libraries
  3. In the top right of the ubuntu software centre there's a search bar. Start typing pkg-config in, that should give you the pkg-config installer. If it's not already installed, then click install.
  4. Now type cmake and install the cmake package.
  5. To install FLTK type libfltk into the search bar.
  6. Click on and install from the list of options:
    • Fast Light Toolkit - shared libraries, libfltk1.1
    • Fast Light Toolkit - development files, libfltk1.1-dev 
    • IMPORTANT: there will be libfltk1.3-dev in the list of packages, but do not install it. Using the most recent library causes Stage 4.0.0 to give compile errors. See my previous ubuntu 11.10 entry for details.
  7. Type freeglut into the search bar and install from the list:
    • OpenGL Utility Toolkit - freeglut3
    • OpenGL Utility Toolkit development files, freeglut3-dev
  8. Type libpng into the search bar and install the following:
    • PNG Library Runtime, libpng12-0 (or whatever is the latest version number)
    • PNG Library Development, libpng12-dev
  9. Type libtool into the search bar. What you need won't be shown, but if you click "show technical items" in the bottom left (see image) it will give you the options you need.
    Install the following:
    • Generic Library support script, libtool
    • A system independent dlopen wrapper for GNU libtool, libltdl7
    • A system independent dlopen wrapper for GNU libtool, libltdl-dev
  10. Type boost thread into the search bar and install the following:
    • Portable C++ multi-threading (default version), libboost-thread-dev
  11. Type boost signals into the search bar and install the following:
    • Managed signals and slots library for C++ (default version), libboost-signals-dev
  12. Type libdb5 into the search bar and install the following:
    • Berkeley v5.1 Database Libraries [stl runtime], libdb5.1-stl

Installing Player


This should work first time, even on a fresh install of Ubuntu.
Open a terminal and change directory (cd command) to the folder you extracted player into. This will probably be called something like "player-3.02" or whatever version you downloaded. Then enter the following commands:
  • mkdir build
  • cd build
  • cmake ..
  • sudo make install

But I don't have sudo!

Well then you'll have to install it into your home directory somewhere. This is a pretty similar process, you just have to change the install prefix.
  • mkdir build
  • cd build
  • ccmake ..
    • Note that's '''ccmake''' not cmake
  • in the terminal scroll menu thing that just opened scroll down to CMAKE_INSTALL_PREFIX. If nothing is listed press c, things should appear.
    • whilst it is selected press enter to edit the option and then change it to the folder you want player installed into.
    • press enter to confirm edit
  • press c to configure the settings
  • if the option appears, press g to generate the make files. If the option doesn't appear press c again until it does.
  • In the terminal now type make install

Installing Stage - Library Dependencies

  1. First make sure that pkg-config can find player, otherwise there may be all sorts of troubles later when you try and use Stage. In a terminal type:
    • pkg-config --modversion playercore
  2. If it gives you a version number it's properly installed. Otherwise, in your home folder make or edit the file called .bashrc, (it probably already exists). If you press ctrl+h while looking at the folder in nautilus it will show up if it's already there. At the end of this file write the following line IF YOU'RE USING A 64-BIT INSTALL:
    • export PKG_CONFIG_PATH+=/usr/local/lib64/pkgconfig
    Write the following line IF YOU'RE USING A 32-BIT INSTALL:
    • export PKG_CONFIG_PATH+=/usr/local/lib/pkgconfig
  3. Test this again in a new terminal with
    • pkg-config --modversion playercore

Installing Stage - Updating a Compilation Script

Ubuntu 11.10 links differently to older versions of Ubuntu, and the Stage compilation code needs updating before it can be run.
  1. In your install directory open libstage/CMakeLists.txt in your favourite text editor.
  2. Completely delete the contents.
  3. Go to http://pastebin.com/y2chM8fz and copy it into the CMakeLists.txt you have open.
  4. Save the file.

Installing Stage


In a new terminal navigate to the stage folder you extracted earlier. this is probably called something like "Stage-4.0.0-src" or whatever Stage version you installed. In a terminal type the following commands:
  • mkdir build
  • cd build
  • cmake ..
  • sudo make install

But I don't have sudo!

The install is just the same as for Player if you need to install Stage in your home folder or somewhere.
  1. Follow the steps above for updating the libraries and compilation script or this won't work.
  2. Then in a terminal navigate to the Stage source code folder. this is probably called something like "Stage-4.0.0-src" or whatever Stage version you installed. In a terminal type the following commands:
    • mkdir build
    • cd build
    • ccmake ..
  3. in the terminal menu thing that just opened scroll down to CMAKE_INSTALL_PREFIX. If nothing is listed press c, things should appear.
  4. whilst it is selected press enter to edit the option and then change it to the folder you want player installed into.
  5. press enter to confirm edit
  6. press c to configure the settings
  7. if the option appears, press g to generate the make files. If the option doesn't appear press c again until it does.
  8. In the terminal now type:
    • make install

Testing it Works


The stage source code has some handy code that should work if you've got everything installed. To test your install in your terminal go to the /worlds directory in the Stage source code folder. Type player simple.cfg into the terminal. In the unlikely event that that works you've successfully installed Player/Stage!

I got the following error:
  • player: error while loading shared libraries: libplayerdrivers.so.3.0: cannot open shared object file: No such file or directory.

To fix this open up your .bashrc file and enter the following line IF YOU'RE USING A 64-BIT INSTALL:
  • export LD_LIBRARY_PATH+=/usr/local/lib64

Write the following line IF YOU'RE USING A 32-BIT INSTALL:
  • export LD_LIBRARY_PATH+=/usr/local/lib

If you changed CMAKE_INSTALL_PREFIX whilst installing player and or stage then do this:
  • export LD_LIBRARY_PATH+="whatever install prefix you made"
Now retest your install IN A NEW TERMINAL. I got the following error:
Registering driver Player v.3.0.2
* Part of the Player/Stage/Gazebo Project [http://playerstage.sourceforge.net].
* Copyright (C) 2000 - 2009 Brian Gerkey, Richard Vaughan, Andrew Howard,
* Nate Koenig, and contributors. Released under the GNU General Public License.
* Player comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under certain conditions; see COPYING for details.

error : Failed to load plugin stageplugin.
error : libtool reports error: file not found
error : plugin search path: /home/robotlab/playerstage/Stage-4.0.0-src/worlds:.:/usr/local/lib64/
error : failed to load plugin: stageplugin error : failed to parse config file simple.cfg driver blocks

This is caused by the computer not being able to find Stage. Back to the .bashrc....
  • change export LD_LIBRARY_PATH+=/usr/local/lib64 to...
  • export LD_LIBRARY_PATH+=/usr/local/lib64:/usr/local/lib
HOWEVER. This is the error that Stage will give if you didn't set up the compilation script properly before installing. If you Googled your error and came to this page you'll need to completely uninstall and delete Stage and the stage source code. Re-download it and follow all the Stage installation instructions above.

42 comments:

  1. Thanks !!!!!! :)

    ReplyDelete
  2. Thanks, it helps me very much!

    ReplyDelete
  3. Thanks Jenny,

    The modified compilation script (CMakeLists.txt) will generate errors if used with Stage 4.1 or later because model_getset.cc and model_load.cc has been folded into model.cc

    See: https://github.com/rtv/Stage/commits/master/libstage/model_getset.cc

    Cheers

    ReplyDelete
  4. Hi, i am getting the following error when i am giving c command in the ccmake .. window:


    * WebSim not detected.

    CMake Error at libstage/CMakeLists.txt:96 (INSTALL):
    install TARGETS given no LIBRARY DESTINATION for shared library target
    "stage".

    What does that mean?

    ReplyDelete
  5. Thank you!

    I had to install stage version 3.2.2 anyway...
    I can confirm player stage working on ubuntu 11.10, in virtualbox VM, with 3.0.0 player and 3.2.2 Stage.
    had to solve this error though (occours during make):
    main.cc:(.text.startup+0x34b): undefined reference to `Fl::run()'
    ...
    Followed this guide:
    http://2s22.ing.ula.ve/rafael/?p=1320#more-1320
    said to substitute these lines in CMakeLists.txt

    SET (CMAKE_CXX_FLAGS_RELEASE " -O3 -DNDEBUG ${WALL} " CACHE INTERNAL "C Flags for release" FORCE)
    SET (CMAKE_CXX_FLAGS_DEBUG " -ggdb ${WALL} " CACHE INTERNAL "C Flags for debug" FORCE)
    SET (CMAKE_CXX_FLAGS_PROFILE " -O3 -ggdb -pg ${WALL} " CACHE INTERNAL "C Flags for profile" FORCE)

    with these ones

    SET (CMAKE_CXX_FLAGS_RELEASE " -O3 -DNDEBUG -Wl,--no-as-needed" CACHE INTERNAL "C Flags for release" FORCE)
    SET (CMAKE_CXX_FLAGS_DEBUG " -ggdb -Wl,--no-as-needed " CACHE INTERNAL "C Flags for debug" FORCE)
    SET (CMAKE_CXX_FLAGS_PROFILE " -O3 -ggdb -pg -Wl,--no-as-needed " CACHE INTERNAL "C Flags for profile" FORCE)

    Worked perfectly.
    after had same error as you with libplayerdrivers, solved as in your guide.

    Nice and smooth!

    Thank you again!

    ReplyDelete
    Replies
    1. what is the compilation script for stage 4.1.1.8 if i use that modified cmake lists.txt iam getting some errors and older versions of stage are not available

      Delete
    2. Man you saved my ass.
      Thank you very much!
      Being banging my head on this for some time now!

      Delete
    3. Ahhh man Great Stuffffffff!!!!! I Spent the last 2 days trying to figure this out, finally installed it!!! :-) ;)

      Delete
  6. what is the compilation script for stage 4.1.1.8 if i use that modified cmake lists.txt iam getting some errors and older versions of stage are not available o github can u guide me to install stage on my computer

    ReplyDelete
  7. I'm getting the following error when trying to make install stage, did I do something wrong?

    /home/user/Programs/Stage/libstageplugin/p_simulation.cc: In member function ‘virtual int InterfaceSimulation::ProcessMessage(QueuePointer&, player_msghdr_t*, void*)’:
    /home/user/Programs/Stage/libstageplugin/p_simulation.cc:155:52: error: ‘PLAYER_CAPABILITIES_REQ’ was not declared in this scope
    /home/user/Programs/Stage/libstageplugin/p_simulation.cc:451:26: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    make[2]: *** [libstageplugin/CMakeFiles/stageplugin.dir/p_simulation.o] Error 1
    make[1]: *** [libstageplugin/CMakeFiles/stageplugin.dir/all] Error 2
    make: *** [all] Error 2
    user@user-Inspiron-1545:~/Programs/Stage/build$

    ReplyDelete
    Replies
    1. Just found the answer to my own question. I was installing Stage 4.1.1 instead of the one mentioned in the text.
      I've downloaded Stage 4.0.0, followed the instructions, and now it is working. :)

      Delete
  8. I try to install Stage 3.2.2 and When i run cmake .. this error occur.. why?

    CMake Error at CMakeLists.txt:58 (set_target_properties):
    set_target_properties called with incorrect number of arguments.


    CMake Error at CMakeLists.txt:96 (INSTALL):
    install TARGETS given no LIBRARY DESTINATION for shared library target
    "stage".


    CMake Warning (dev) in CMakeLists.txt:
    No cmake_minimum_required command is present. A line of code such as

    cmake_minimum_required(VERSION 2.8)

    should be added at the top of the file. The version specified may be lower
    if you wish to support older CMake versions for this project. For more
    information run "cmake --help-policy CMP0000".
    This warning is for project developers. Use -Wno-dev to suppress it.

    -- Configuring incomplete, errors occurred!

    ReplyDelete
    Replies
    1. Instructions are for stage 4 not 3.2.2. As far as I'm aware the cmake script doesn't need changing for version 3.2.2.

      -Jenny

      Delete
  9. I installed the corresponding versions but even putting the last of these exports appear errors:

    libplayerdrivers.so.3.0: cannot open shared object file: No such file or directory
    libstage.so.4.0.0: cannot open shared object file: No such file or directory

    ReplyDelete
    Replies
    1. Sorry, no idea. You'll have to ask the playerstage mailing list.

      Delete
  10. Dear Janny, pleas help me with my problem, when i trying to make Player i get en error list:
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQresultErrorMessage'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQstatus'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQsetdbLogin'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQgetvalue'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQbinaryTuples'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQclear'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQgetlength'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQntuples'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQexecParams'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQfinish'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQexec'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `PQresultStatus'
    collect2: ld returned 1 exit status
    make[2]: *** [server/player] Error 1
    make[1]: *** [server/CMakeFiles/player.dir/all] Error 2
    make: *** [all] Error 2
    If you can help me, pleas help,thank you.

    ReplyDelete
    Replies
    1. Did you fix this error?
      I am facing the same problem.

      Thanks.

      Delete
  11. Awesome guide! Helped me greatly. Made sure to install the correct versions and everything worked. Player 3.0.2 and Stage 4.0.0

    ReplyDelete
  12. Hi Janny
    i have similar error like above while doing make in build directory during player installation (using ubuntu 11.10 and player 3.0.2)

    Exact error:
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCloneImage'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvGetCaptureProperty'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvReleaseMemStorage'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvReleaseImage'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvLUT'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCopy'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvBoundingRect'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvSobel'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvMoments'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvDrawContours'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvMerge'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvContourArea'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCreateMatHeader'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvLoadImage'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvSetCaptureProperty'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCreateCameraCapture'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvRectangle'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCanny'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvGetReal1D'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvThreshold'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvPtr2D'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvFindContours'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvSplit'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvGetSubRect'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvGetSeqElem'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvQueryFrame'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvArcLength'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvConvertScaleAbs'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCreateMemStorage'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvReleaseCapture'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvSetZero'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvFitEllipse2'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCvtColor'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvApproxPoly'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCreateHist'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCalcArrHist'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvGetSize'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvSetData'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCreateImage'
    libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvLaplace'
    collect2: ld returned 1 exit status
    make[2]: *** [server/player] Error 1
    make[1]: *** [server/CMakeFiles/player.dir/all] Error 2
    make: *** [all] Error 2

    please help.

    ReplyDelete
  13. pl mail me the solution
    s.sreechu@gmail.com

    ReplyDelete
    Replies
    1. I'm going through the same problems. I have OpenCV but still cant figure it out

      Delete
    2. I am also having the same problems-could you forward me the solution?
      jrfraz05@gmail.com

      Delete
    3. I had the same problem while using make. Please could you tell me what is the solution? natalia.ufmg@gmail.com
      Thanks.

      Delete
    4. I am having the same problem while using make. Please could you tell me what is the solution? jainajinkya92@gmail.com
      Thanks.

      Delete
    5. Same here, I am assuming it is a linking error but I cannot figure it out. If anyone knows how to fix this I would live to hear about it. Thanks in advance. fineb [at] tamu [dot] edu

      Delete
    6. I had the same problem when using sudo make ,please email the solution !! thanks very much !wuyinxian124@gmail.com

      Delete
  14. Thumps up!!!
    Awesome guide.. Really helped me...!!

    ReplyDelete
  15. Great work!!!
    Thanks

    ReplyDelete
  16. Did anyone try to use player/stage in Ubuntu 12.04. I installed it and started "player simple.cfg" out of the worlds directory. The robot was moving very strange (more discrete than continuously and very slow). Any other experiences?

    ReplyDelete
    Replies
    1. I am having the same problem. Player/Stage worked fine on the same computer using a previous version of Ubuntu.

      Delete
    2. Please, can you help me to install it i have some problems .thanks

      Delete
  17. I have a question regarding the usage of player/stage on a virtual machine. I installed player/stage on a virtual machine. However, when starting the robots to move they do not move as they do on my host-machine. Instead, they move very strange and not as expected. Is it possible that player/stage works different on a virtual machine (I use virtual box with ubuntu 11.10) than on my host machine? And if so, what do I have to configure in order to get rid of this different behavior?

    ReplyDelete
  18. I had the same problem linking opencv as some others have had here, "libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCloneImage'" and so on. I had downloaded my own version of opencv, built it with cmake, and installed it. It didn't seem to like that version for some reason. So then I installed the version with apt-get with the command 'sudo apt-get install libcv-dev libcvaux-dev libhighgui-dev' but it was still having troubles. After completely removing my built-from-source version, I noticed it was still trying to link the libraries in /usr/local/lib/ (where the built-from-source version was installed) instead of /usr/lib/ where apt-get had installed it. I removed every single reference of opencv on my computer and tried again with apt-get. That worked. Only one version of opencv on my computer and player found it correctly. To remove opencv from my computer I went to the built-from-source directory and typed 'sudo make uninstall'. For apt-get I tried sudo apt-get remove libcv-dev libcvaux-dev libhighgui-dev but that didn't remove every reference like I wanted, player still saw some traces of opencv. So I went into synaptic and marked for complete removal. That seemed to work.

    ReplyDelete
    Replies
    1. This did it for me too.

      Thanks for the workaround.

      Delete
  19. hello i have problem with installation of stage4 the instation progamme give me this this error
    /home/dsgl/Stage4/Stage/libstageplugin/p_simulation.cc: In member function ‘virtual int InterfaceSimulation::ProcessMessage(QueuePointer&, player_msghdr_t*, void*)’:
    /home/dsgl/Stage4/Stage/libstageplugin/p_simulation.cc:155:52: erreur: ‘PLAYER_CAPABILITIES_REQ’ was not declared in this scope
    /home/dsgl/Stage4/Stage/libstageplugin/p_simulation.cc:451:26: attention : déréférencement du pointeur type-punned brisera les strictes d'aliases [-Wstrict-aliasing]
    make[2]: *** [libstageplugin/CMakeFiles/stageplugin.dir/p_simulation.o] Erreur 1
    make[1]: *** [libstageplugin/CMakeFiles/stageplugin.dir/all] Erreur 2
    make: *** [all] Erreur 2
    i need your help tank you.

    ReplyDelete
  20. hello, 1st of all gr8 guide, but it lead to a deadend for me, it seems pyrobot cant see stage path.. I tried everythin mentioned from above... still no luck, it always endup with following error:

    error : Failed to load plugin libstageplugin.
    error : libtool reports error: file not found
    error : plugin search path: /usr/lib:/home/dusan/Desktop/izborni/Stage-master/worlds:/home/dusan/Desktop/izborni/pyrobot/plugins/worlds/Stage:/usr/local/lib/
    error : failed to load plugin: libstageplugin
    error : failed to parse config file /home/dusan/Desktop/izborni/pyrobot/plugins/worlds/Stage/simple.cfg driver blocks

    ReplyDelete
    Replies
    1. Hello. I just met the same problem. Have u found any solutions until now?

      Delete
  21. `export PATH += /path/to/dir`
    This syntax is not working on ubuntu 12.10.

    Instead I found this working
    `export PATH=$PATH:/path/to/dir`

    Please explain why?

    ReplyDelete
  22. Works for me on Ubuntu 12.04 LTS, but only with Stage 4.0.0 and Player 3.0.2

    ReplyDelete
  23. I've adapted this guide for 2014 and Stage 4.1.1

    4.1.1 doesn't require modifying the CMakeLists.txt

    https://chrisaiello.ca/docs/playerstage.html

    ReplyDelete