2 minute read

For the last preparation before starting to study about the SceneLib library and Visual SLAM, here is a post describes how to debug SceneLib with Eclipse. Regarding how to install SceneLib 1.0 on Ubuntu 10.04, please refer to the previous post.

1. Have SceneLib and other components in a folder

All you need are glow_104, MonoSLAMGlow, SceneLib, VW34 and TestSeqMonoSLAM folders.

2. Clean and configure

If you have ever compiled and/or configured any component, please clean and/or re-configure them as below.

// GLOW Toolkit
$ cd glow_104
$ cd glow_src
$ sudo make clean
$ sudo make
$ sudo ln -s libglow.a.1.0.2 libglow.a
// VW34 Library
$ cd VW34
$ sudo make clean
$ sudo rm configure
$ ./bootstrap
$ ./configure
$ sudo make
$ sudo make install
// SceneLib
$ cd SceneLib
$ sudo make clean
$ ./configure
$ sudo make
$ sudo make install
// MonoSLAMGlow
$ cd MonoSLAMGlow
$ sudo make clean
$ sudo make

3. Modify MonoSLAMGlow/Makefile

Add all: ${EXECUTABLE) before $(EXECUTABLE):$(OFILES) to make a target correctly as below.

# Executable
all: $(EXECUTABLE)
$(EXECUTABLE): $(OFILES) 

4. Run Eclipse and select the folder as a workspace

I installed Eclipse IDE for C/C++ Linux Developers - Indigo Service Release 1 Version on Ubuntu 10.04. In the Eclipse IDE, choose File->Switch Workspace->Other..., and select the folder as a workspace.

5. Add SceneLib and all other components as projects to Eclipse

In the Eclipse IDE, choose File->New->Makefile Project with Existing Code, select a folder using the Browse... button, and click the Finish button after selecting Linux GCC for Toolchain for indexer Settings. Do the same things for all components (i.e., glow_104, MonoSLAMGlow, SceneLib and VW34). You should see all added projects in the ‘Project Explorer’ window as below.

SceneLib 1.0 with Eclipse

6. Change Build location of the glow_104 project

In the Eclipse IDE, right click on the glow_104 project, choose Properties, click C/C++ Build. On the Builder Settings tab, select glow_104->glow_src using the Workspace... button as its make file is located in the glow_src folder.

7. Modify glow_104/glow_src/Makefile

To build GLOW Toolkit in the debug mode, change CFLAGS_Linux and CFLAGS_IRIX as below.

CFLAGS_Linux=-Wall \
 -DGLOW_PLATFORM_LINUX \
 -DGLOW_PLATFORM_LITTLEENDIAN -g
#NODEBUGCFLAGS_Linux=-O2 -DNODEBUG
CFLAGS_IRIX=-fullwarn -no_auto_include \
 -LANG:std \
 -woff 1209,3201,1424,1375 \
 -OPT:Olimit=0 \
 -I../Compat-SGI \
 -DGLOW_COMPAT_CLIBNOSTDNAMESPACE \
 -DGLOW_PLATFORM_IRIX \
 -DGLOW_PLATFORM_BIGENDIAN -g
#NODEBUGCFLAGS_IRIX=-O2 -DNODEBUG

8. Rebuild all component in the Eclipse IDE

Right click on each project, select Clean Project and Build Project sequentially.

9. Debug MonoSLAMGlow

You can debug MonoSLAMGlow by selecting 1 monoslam from the Debug icon.

SceneLib 1.0 with Eclipse

10. Run MonoSLAMGlow

Right click on the MonoSLAMGlow project, choose Run As->Local C/C++ Application, and click OK button after selecting gdb/mi as a configuration to run.

SceneLib 1.0 with Eclipse

Now is the time to start reading Andrew Davison’s papers and delving the SceneLib’s source code! :)

[Update on 18/06/2012]

If you cannot use Open Declaration (F3) on a function when you are debugging, and if you get a warning or error message something like ... unresolved inclusion ... or ... could not be resolved ... on the function, please add its source folder following below.

  1. Right click on the project, and select Properties.
  2. Select C/C++ General - Paths and Symbols.
  3. Select Includes tab and GNU C++.
  4. Add its source folder using Add... button.