How to compile ROS2 for another OS - compilation

I'm writing my master thesis on Computer Engineering about ROS2. I learned a lot thanks to tutorials on https://index.ros.org/doc/ros2/Tutorials/. I tried ROS2 on my Ubuntu 18 and 16 machines but I would like to insert in my thesis a general guide to compile ros2 for others operative systems (not specific). I would like to know where if could find a guide about "compiling ros2 for others OS".

I would suggest you look at https://discourse.ros.org/t/ros2-cross-compilation/6834
As there are some discussions about how to cross-compile ROS2. Some people cross-compiled ROS2 for iOS, Android,..
Hopefully a tutorial will emerge from those discussions.
However, if you need to compile ROS2 to a non-supported OS (Fedora, or others,..) you will need to make sure you have all the dependencies necessary: https://index.ros.org/doc/ros2/Linux-Development-Setup/ (same library version,..).

Related

Latest gnuplot for Windows 32

There are no precompiled builds for Windows 32 bit for a long time. The links here for Windows binaries provided erlier by Dr. Matsuoka are dead. I tried to compile from sources using Msys2 & mingw, but there are so many hidden and/or unobvious dependencies ... For me, not a programmer, it is very hard to wade through all these concise notes.
So, could anyone give me thorough instructions how to compile gnuplot for Windows, what and how should be preinstalled/configured.
Thank you in advance.

Can the Windows fork of Caffe be used for object detection?

I've installed Caffe on my Windows computer but from what I can tell online most projects that use Caffe to do object detection are using some other forks of Caffe like NvCaffe or the SSD fork. None of these forks are available for Windows.
Does this mean it's not possible to do object detection on the Windows fork or is it just that people prefer not to. Sorry if this is a dumb question but I find the Caffe documentation somewhat lacking when it comes to explaining what features require what fork. I'm using the python interface if that makes any difference.
Thanks for any clarifications!
It is possible to run Caffe-SSD on Windows, but some effort is needed. You need to merge the changes from the Windows branch into the Caffe-SSD. There are some existing solutions for that (https://github.com/runhang/caffe-ssd-windows, https://github.com/gustavkkk/caffe-ssd-win, google for more), but I did not use those, unfortunately. Colleague of mine did it by himself, so it is definitely possible. As soon as you get it compiled and running, you will have a Python interface as well.

Packaging SDL2 when compiling on Ubuntu

I have created a game for my Uni project, said game runs fine however I can't run it on the University computers that don't have SDL2 installed and getting SDL2 installed on them is not possible.
Is there a way to package the SDL2 files while compiling so that I can run it on any Ubuntu system?
The above comments are right. You should use the Linux tool 'chrpath' or the rpath flag with gcc in order to reference your own packaged SDL libraries in your game binary.
As a starting point, I advise you to take a look at the Makefile of the GPL game Rock Dodger CE on bitbucket. It does what you are looking for. It references SDL2 libraries with the -rpath compiler flag.
In addition, that game ships the SDL2 libraries for 3 Linux architectures (i686, Amd64, ARMv7l).
(Look at the download section for the 'multiarch' package for Linux.) You can use those compiled libraries if they fit your requirements and you don't want to rebuild everything yourself.
I agree with you on the fact that there is not (yet) a comprehensive documentation about how to create "universal" packages for SDL2 games on Linux. Or I haven't found it yet ;)
Building compatible binaries for many Linux distributions requires first to understand the 'Linux Standard Base 5.0'. The tool Linux App Checker (from LSB) is designed to help you to achieve maximum portability for your binaries.
From my experience, I think that CentOS 5 is by far the most appropriate 'Long Term Support' Linux distribution for building universal binaries.

Setting up COBOL Compiler under Mac OS?

In my university, we're being taught COBOL, and I'm trying to get a head start and learn COBOL, C++, and Java before I get into the classes next year.
Problem is; COBOL is so old, it's hard to grab support for it in mac (my laptop is a mac). I understand it runs fine on Mac, but finding someone who can explain how to set up the compiler is another story.
You can use brew to install GNU Cobol (Open Cobol). Just type:
brew install gnu-cobol
Then to compile program use:
cobc -x hello.cob
Browse --help for more option (like super nice -free)
Is there a particular Cobol you are trying to use. If not try
Open Cobol
There are some very old notes for the mac here but you might be better off asking a question in the Open Cobol Help forum.
The Open-Cobol project are currently collecting sample cobol programs which might be useful to you.

Haskell or Ocaml with OpenGL and SDL precompiled distribution for Windows

I want to learn Ocaml or Haskell and I want to do it by writing a simple game. Apparently, there's one small problem: nobody cares about Windows and I want to do it on Windows, natively.
Haskell has Cabal, which has SDL, but it doesn't build due to a trivial problem with no workarounds (order of parameters passed to gcc). Ocaml doesn't even have that, it's all in source packages, be it GLCaml or OcamlSDL or whatever.
Is there a place where I can get a working SDL for Haskell or Ocaml on Windows without fighting with a dozen versions of compilers?
The Haskell Platform comes with a binding to OpenGL which should work out of the box on Windows.
Concerning the SDL package on hackage, you can use cabal unpack SDL to get the source code and fix things yourself. To install the package with your changes, run cabal install in the unpacked directory. In any case, drop a line to the maintainer, I'm sure he'll help out.
It's not related to SDL, but you've mentioned OpenGL. There is LablGL binding for OpenGL in OCaml which works out of the box. Wiki example (http://en.wikipedia.org/wiki/Objective_Caml#Triangle_.28graphics.29) compiles and works just fine.
The best instructions I've found for getting SDL to work in windows with a the most recent Haskell platform can be found at this blog. I followed everything step-by-step and it worked perfectly, despite some configure error messages.
It isn't SDL but GLFW works on Windows with Haskell through Cabal.
My article High-fidelity graphics with OpenGL 2 (25th Feb 2008) explained how the GLCaml bindings can be used to write OpenGL-based applications in OCaml that use vertex and fragment shaders (a phong shader is given as an example). There are 9 articles in the OCaml Journal on OpenGL, albeit mostly using the older LablGL library for OpenGL 1.1.
I tried and failed to get OpenGL working from Haskell under Linux in 2007. The Haskell Platform may have changed that but I have neither had time to try it yet myself nor ever heard of anyone using it for this.
However, both OCaml and Haskell must rely upon fragile low-level bindings to OpenGL because they are standalone languages and nobody has ever managed to get any significant commercial software using them to work. As you're on Windows, F#+XNA is a far more logical choice because XNA is tried and tested and F# has a safe high-level interface to it. A Google fight gives you a good idea of what a pioneer you'll be: +haskell +opengl gives 437 hits on Google and +ocaml +opengl gives only 347 hits.

Resources