Skip to content
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

Fix missing symbol issue on Windows for filters::convolution and poisson4::bspline #4165

Merged
merged 12 commits into from
Jun 24, 2020
Merged

Fix missing symbol issue on Windows for filters::convolution and poisson4::bspline #4165

merged 12 commits into from
Jun 24, 2020

Conversation

OgreTransporter
Copy link
Contributor

@OgreTransporter OgreTransporter commented Jun 4, 2020

Here is a new bugfix for problem #4082. This is a different approach than in PR #4151. Instead of undoing PRs #3972 and #3971, we use PCL_EXPORTS here. Many thanks to larshg who found the solution.

Closes #4082

@OgreTransporter
Copy link
Contributor Author

@UnaNancyOwen, @SunBlack: Could you please also test this solution in your environments?

@SunBlack
Copy link
Contributor

SunBlack commented Jun 4, 2020

Looks good 👍
image

Copy link
Member

@kunaltyagi kunaltyagi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot @OgreTransporter

This looks much cleaner. I'll close the other PR in favor of this appraoch

test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
filters/include/pcl/filters/convolution.h Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
@kunaltyagi kunaltyagi added the changelog: fix Meta-information for changelog generation label Jun 4, 2020
@kunaltyagi kunaltyagi added this to the pcl-1.11.1 milestone Jun 4, 2020
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
@OgreTransporter
Copy link
Contributor Author

I have built and run the test as debug and release with Visual Studio 2017 and 2019 on different computers. Works fine for me.

test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
@UnaNancyOwen
Copy link
Member

LGTM 👍

test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
@kunaltyagi
Copy link
Member

Haven't reviewed, but I love the 3000 removed lines 😄

PS: tests failing

@OgreTransporter
Copy link
Contributor Author

Yes, I have made a mathematical approximation to the original data and then determined the new output data. In addition, I have also determined output data for the other tests. I did not add the data line by line to an array - as in the original test - but initialized it as a fixed array. Fewer lines and you can test comfortably.

The macOS build failed due to a signed/unsigned comparison. Nothing happens with GCC, under MSVC there is a compiler warning and under OSX it is an error.

@SunBlack
Copy link
Contributor

SunBlack commented Jun 5, 2020

The macOS build failed due to a signed/unsigned comparison. Nothing happens with GCC, under MSVC there is a compiler warning and under OSX it is an error.

The macOS build is configured with warnings as errors, during the other not (now) - that's why the build is failing only on macOS.

Copy link
Member

@kunaltyagi kunaltyagi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good, just some minor inline comments to improve readability.

You've mentioned that you copied the tests. If this refactoring didn't touch those tests, could you create an issue with the details of the tests that can be refactored too? Thanks for the work you've put in for this (these) PR

test/filters/test_convolution.cpp Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
test/filters/test_convolution.cpp Outdated Show resolved Hide resolved
@OgreTransporter
Copy link
Contributor Author

You've mentioned that you copied the tests. If this refactoring didn't touch those tests, could you create an issue with the details of the tests that can be refactored too? Thanks for the work you've put in for this (these) PR

Unfortunately the statement is no longer true. The test principle of generating and filtering inputs and comparing the outputs is still the same. But by approximating the data, new results have come out. So the original test has been renewed as well.

Copy link
Member

@kunaltyagi kunaltyagi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Needs one more set of eyes before merge

@kunaltyagi kunaltyagi added the needs: code review Specify why not closed/merged yet label Jun 8, 2020
@OgreTransporter
Copy link
Contributor Author

d:\a\1\s\surface\include\pcl\surface\impl\surfel_smoothing.hpp(84): fatal error C1083: Cannot open compiler intermediate file: 'pcl_surface.dir\Release\mls.obj': Not enough space [D:\a\build\surface\pcl_surface.vcxproj]
LINK : fatal error LNK1257: code generation failed [D:\a\build\surface\pcl_surface.vcxproj]

This time it's not my fault ;-)

@kunaltyagi
Copy link
Member

@SunBlack, @larshg Could you please give this a look over? Especially the tests. If everything is ok, let's merge this to master

@larshg
Copy link
Contributor

larshg commented Jun 23, 2020

I have build without PR: pcl_train_linemod_template failed with linking errors as expected.
Build with PR: pcl_train_linemod_template is build succesfully.
The modified and new unit tests runs successfully.

I haven't verified the approximation of the original data, nor reasoned anything about its correctness in general.

But it compiles and run. I have only launched the pcl_train_linemod_template, without any arguments. But I just assume it works as it hasn't changed per se.

@kunaltyagi
Copy link
Member

Thanks @larshg

Let's merge this

@kunaltyagi kunaltyagi changed the title New bugfix for issue #4082 Fix missing symbol issue on Windows for filters::convolution and poisson4::bspline Jun 24, 2020
@kunaltyagi kunaltyagi merged commit eefaf0d into PointCloudLibrary:master Jun 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog: fix Meta-information for changelog generation needs: code review Specify why not closed/merged yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[windows] symbol not found: filters::Convolution<RGB,RGB>::convolveOne{Row,Col}Dense()
5 participants