-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[compile error] "PCL_ONLY_CORE_POINT_TYPES not working as expected" #5928
Comments
if i bypass the thing by renaming all #ifdef PCL_ONLY_CORE_POINT_TYPES #ifdef PCL_ONLY_CORE_POINT_TYPES_ i get this [1/45] Linking CXX shared library bin\pcl_features.dll ninja: build stopped: subcommand failed. |
i am going now to disable only in specific modules i need the #ifdef PCL_ONLY_CORE_POINT_TYPES by substituing it with |
Have you considered switching to |
yes in the end i had to define PCL_NO_PRECOMPILE but it would be better to be able to use the option PCL_ONLY_CORE_POINT_TYPES = false but it seems the lib becomes too big in terms nr. of objects?? |
The define is added here, no matter if the CMake option is set to true or false. We could change that, but yes, apparently it is impossible to compile PCL for all point types with MSVC because of the library limit. |
Yes, its a limitation of the windows linker. See https://learn.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-error-lnk1189?view=msvc-170 So we could try to split the dll into multiple ones or live with the limited amout of pointtypes. We could also make it configureable throuh cmake and some preprocessor magic. So you can build for only the pointtype that you use. |
Also see #833 for reference and history 😀 |
ok understood. i don't think i ll have much time in the next week to invest on this. what are the drawbacks according to you of using the NO_PRECOMPILE? the fact that you don't see some errors at build time but only when you link PCL to an application? what else? |
XYZRGB is a very much used point in real world application so maybe we could add that alone to the CORE_POINT_TYPES ? |
That seems like it would be quite difficult and could cause a lot of problems
That is an interesting idea, making
Most importantly, I would say, that your project takes a bit longer to compile. |
Compiling PCL with Visual Studio 2022,
Even if I set PCL_ONLY_CORE_POINT_TYPES = False in the CMakeSettings.json
i keep getting defined PCL_ONLY_CORE_POINT_TYPES
and so my app that links to PCL does not link correctly with XZYRGB points , specifically
unresolved external symbol "public: bool __cdecl pcl::MomentOfInertiaEstimation::getMassCenter
and similar errors
The text was updated successfully, but these errors were encountered: