Używam Visual Studio 2019,
bibliotekę PCL zainstalowałem używając vcpkg:
vcpkg install pcl[vtk]:x64-windows --featurepackages --recurse
Następnie używając CMake zbudowałem projekt.
Poniższy kod generuje błąd:
try
{
pcl::PointCloud<pcl::PointXYZ>::Ptr tmpData(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointXYZ pt;
pt.x = 1.0;
pt.y = 1.0;
pt.z = 1.0;
tmpData->push_back(pt);
}
catch (exception& e)
{
std::cerr << "Error: " << "\n\t" << e.what() << endl;
}
Co ciekawe nie jest rzucany wyjątek tylko generują się takie komunikaty:
Exception thrown at 0x00007FFDE932C49C (ucrtbased.dll) in TestPcl.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.
[Managed to Native Transition]
> TestPcl.exe!std::vector<pcl::PointXYZ,Eigen::aligned_allocator<pcl::PointXYZ> >::_Tidy() Line 1754 C++
TestPcl.exe!std::vector<pcl::PointXYZ,Eigen::aligned_allocator<pcl::PointXYZ>>::~vector<pcl::PointXYZ,Eigen::aligned_allocator<pcl::PointXYZ>>() Line 699 C++
TestPcl.exe!pcl::PointCloud<pcl::PointXYZ>::~PointCloud<pcl::PointXYZ>() C++
TestPcl.exe!pcl::PointCloud<pcl::PointXYZ>::__delDtor(unsigned int ) C++
TestPcl.exe!std::_Ref_count<pcl::PointCloud<pcl::PointXYZ> >::_Destroy() Line 1134 C++
Jeżeli stworzę projekt nie używając CMake tylko w samym Visual Studnio, wszystko działa prawidłowo.
Jest jakiś problem z zarządzaniem pamięcią, używając innych przykładów to samo dzieje się podczas reallokacji pamięci.
Macie jakieś sugestie co należałoby sprawdzić?