PointCloudLibrary/pcl — pull request #417 by taketwo (2013-12-18 19:28:39+00:00)
Title: Missing inclusion of implementation file in 'search/kdtree.h'

In the end of the ['search/kdtree.h'](https://github.com/PointCloudLibrary/pcl/blob/master/search/include/pcl/search/kdtree.h) file there is only an instantiation macro:

```cpp
#define PCL_INSTANTIATE_KdTree(T) template class PCL_EXPORTS pcl::search::KdTree;
```

There is no conditional inclusion of an implementation file like i.e. in ['search/octree.h'](https://github.com/PointCloudLibrary/pcl/blob/master/search/include/pcl/search/octree.h):

```cpp
#ifdef PCL_NO_PRECOMPILE
#include
#else
#define PCL_INSTANTIATE_Octree(T) template class PCL_EXPORTS pcl::search::Octree;
#endif
```

So compilation with `PCL_NO_PRECOMPILE=ON` fails:

Linking CXX executable test_recognition_ism
CMakeFiles/test_recognition_ism.dir/test_recognition_ism.cpp.o: In function `pcl::Feature >::initCompute()':
/home/travis/pcl/features/include/pcl/features/impl/feature.hpp:123: undefined reference to `pcl::search::KdTree::KdTree(bool)'
CMakeFiles/test_recognition_ism.dir/test_recognition_ism.cpp.o: In function `pcl::Feature::initCompute()':
/home/travis/pcl/features/include/pcl/features/impl/feature.hpp:123: undefined reference to `pcl::search::KdTree::KdTree(bool)'
CMakeFiles/test_recognition_ism.dir/test_recognition_ism.cpp.o: In function `pcl::ism::ImplicitShapodelEstimation<153, pcl::PointXYZ, pcl::Normal>::estimateFeatures(boost::shared_ptr >, boost::shared_ptr >, boost::shared_ptr > >)':
/home/travis/pcl/recognition/include/pcl/recognition/impl/implicit_shape_model.hpp:1245: undefined reference to `pcl::search::KdTree::KdTree(bool)'
../lib/libpcl_features.so.1.7.1: undefined reference to `pcl::search::KdTree::KdTree(bool)'
collect2: ld returned 1 exit status