The following presents a set of advanced topics regarding PCL.
PCL uses modern C++ template programming in order to achieve maximum generality and reusability of its components. Due to intricate details of the current generation of C++ compilers however, the usage of templated code introduces additional compile-time delays. We present a series of tricks that, if used appropriately, will save you a lot of headaches and will speed up the compilation of your project.
CCache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when the same compilation is being done again. Supported languages are C, C++, Objective-C and Objective-C++.
distcc is a program to distribute builds of C, C++, Objective C or Objective C++ code across several machines on a network. distcc should always generate the same results as a local build, is simple to install and use, and is usually much faster than a local compile.
Depending on what compiler optimizations you use, your code might behave differently, both at compile time and at run time.
In certain cases, it’s better to concatenate source files into single compilation units to speed up compiling.
Developing PCL code
To make our lives easier, and to be able to read and integrate code from each other without causing ourselves headaches, we assembled a set of rules for PCL development that everyone should follow:
Please follow the following naming and indentation rules when developing code for PCL.
Short documentation on how to add new, throw and handle exceptions in PCL.
An in-depth discussion about the PCL 2.x API can be found here.
Committing changes to the git master
In order to oversee the commit messages more easier and that the changelist looks homogeneous please keep the following format:
“* <fixed|bugfix|changed|new> X in @<classname>@ (#<bug number>)”
Improving the PCL documentation
In case you want to contribute/help PCL by improving the existing documentation and tutorials/examples, please read our short guide on how to start.
How to build a minimal example
In case you need help to debug your code, please follow this guidelines to write a minimal example.