I wanted to run Codelite with the latest gcc (6.1) C++ compiler and ideally the latest gdb debugger. Debian 8 uses 4.x compilers which use the old ABI (Application Binary Interface). I want to work on a large long-term C++ project with the most recent tools. I understand it is tricky installing a much later compiler (such as 5.x or 6.1, both which use the new ABI) on a Linux system which assumes the use of an older compiler, due in part at least to the need for some programs to compile themselves as part of installation. (VirtualBox compiles its own driver on installation.)
I had previously successfully built this version of Codelite on a Debian 8.2 (jessie) by following: http://codelite.org/Developers/Linux with the linked-to page on installing a bunch of wxWidgets packages: http://www.codelite.org/LiteEditor/WxWidgets30Binaries . This second page is the reference for most of what follows:
I was able to tell my package manager system to access the special builds of wxWidgets packages at the Codelite respository:
Code: Select all
sudo apt-key adv --fetch-keys http://repos.codelite.org/CodeLite.asc
sudo apt-add-repository 'deb http://repos.codelite.org/wx3.0.2/debian/ wheezy libs'
Next I did the apt-get install command, here truncated to the first 6, which this page indicates are the essential ones:
Code: Select all
sudo apt-get install libwxbase3.0-0-unofficial \
libwxbase3.0-dev \
libwxgtk3.0-0-unofficial \
libwxgtk3.0-dev \
wx3.0-headers \
wx-common
Code: Select all
libgstreamer-plugins-base0.10-0 0.10.36-2 GStreamer libraries from the "base" set.
libgstreamer0.10-0 0.10.36-15 Core GStreamer libraries and elements
Code: Select all
libgstreamer-plugins-base1.0-0 1.8.1-1
libgstreamer1.0-0 1.8.1-1
I found the web pages for the above two packages which worked for me in the 8.2 system, which had specific files for my architecture, and saved these files to a local directory. These are both for Debian 8 (jessie). There were none for 9 testing (sid):
https://packages.debian.org/jessie/libg ... base0.10-0
libgstreamer-plugins-base0.10-0_0.10.36-2_amd64.deb
https://packages.debian.org/jessie/libgstreamer0.10-0
libgstreamer0.10-0_0.10.36-1.5_amd64.deb
I was able to list the dependencies of these with:
sudo dpkg -I libgstreamer0.10-0_0.10.36-1.5_amd64.deb
sudo dpkg -I libgstreamer-plugins-base0.10-0_0.10.36-2_amd64.deb
and after checking by searching within synaptic that these were satisfied with already installed packages, I installed them manually. I guess apt-get would have worked too.
sudo dpkg -i libgstreamer-plugins-base0.10-0_0.10.36-2_amd64.deb
sudo dpkg -i libgstreamer0.10-0_0.10.36-1.5_amd64.deb
Then I was able to use synaptic to install the remaining package I need for Codelite compilation, from the Codelite repository:
libwxgtk3.0-0-unofficial 3.0.2-1.wheezy
To check on this I ran the above command to install six packages and the response was that they were already installed.
I proceeded with the normal Codelite build procedure from the first-mentioned page above, except that instead of using git to obtain the source, I downloaded a tarball, starting at http://downloads.codelite.org, following the link "Download CodeLite 9.1.0 tar.gz from GitHub" which is to: http://downloads.codelite.org/downloads.php?sources which provides directly the file "codelite-9.1.tar.gz".
I un-tar-gzipped this so the main tree of source code was at: /xyz/codelite-build/codelite-9.1/ and from there, as a mortal user, gave the incantations:
Code: Select all
mkdir build-release
cd build-release
cmake -DCMAKE_BUILD_TYPE=Release .. -DCOPY_WX_LIBS=1
make -j4
sudo make install
The build-essentials package (installed as part of the Codelite linux build instructions) installs five of the following GCC packages:
Code: Select all
gcc 4:5.3.1-3 Installed.
gcc-4.9-base 4.9.3-14 Installed.
gcc-5 5.3.1-21 Installed.
gcc-5-base 5.3.1.21 Installed.
gcc-6 6.1.1-4 NOT installed.
gcc-6-base 6.1.1.-4 Installed.
There was only a minimal gdb package installed, so I installed in its place (with synaptic) gdb-python2 7.10-1.1, since the Python capabilities are needed for "pretty printing" display of the innards of containers class objects such as vectors and maps.
Codelite detected these and I was able to create a new C++ workspace, create a new project (Console > Simple executable (g++)), make multiple copies of the printf() statement in the initial Hello World program, put a breakpoint in one of them, build it in the Debug configuration, run it standalone and step through it with the debugger after it hit the breakpoint. This is not a test of all the gdb capabilities, but it shows that Codelite is working.
Thanks for Codelite!
- Robin