PCL LNK2001 unresolved external symbol EuclideanClusterExtraction extract()

I have been getting the following linker error when building with the Point Cloud Library (PCL 1.8.1) in Visual Studio 2017 – not at all sure why:

Error	LNK2001	unresolved external symbol "public: void __cdecl
pcl::EuclideanClusterExtraction
::extract(class std::vector > &)" ([email protected][email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@@[email protected]@@Z)	

I found that to get rid of the linker error I needed to include:

#include 

Again I am not sure why, and it is not usual to have to include impl/* files? – I may look into it a bit further if I get a chance but for now I am happy that my code links!