Search code examples
c++static-linkingpoint-cloud-library

How to tell what libraries a PCL application needs


Because of my particular build I have the issue where I want to minimize the number of PCL libs that are built. I also have the requirement that the PCL libs are static due to funny behavior with boost on my particular OS (QNX).

I want to know how to tell what libraries PCL ICP uses?

So there are some obvious ones like registration, common and kdtree But i have a feeling that extra libraries will be required by those libraries.

I have a full install with an ICP example built however because it is statically linked i cannot check this with ldd.

What I can do to find out and what I have been doing is to move all of the libraries from /usr/local/lib to some temporary folder and then moving the ones the compiler complains about back in until it builds. But surely there is a better way than this?

I have looked through the documentation but i cannot find anything obvious about which libs are required. I would like to know the procedure for checking this in case I need to do so again for another application.


Solution

  • In the documentation of the registration module, the requirements are named:

    • common
    • kdtree
    • sample_consensus
    • features

    Compiling pcl using cmake (as proposed in the docs), e.g. ccmake could also tell you which dependencies are missing, if you try to compile BUILD_registration.