2017-02-19 148 views
2

我引用此鏈接。我也有同樣的問題。QT中的PCL鏈接錯誤C++

PCLVisualizer addPointCloud crashes

我使用Qt C++。

我正在使用PCL1.8(C:\ Program Files \ PCL1.8.0) 我正在使用Windows 7操作系統。 爲PCL和VTK提供了所有的lib依賴項 該應用程序未編譯。有一個鏈接錯誤。 MSVC編譯器64位。以下是我的代碼片段。

void MainWindow::on_pushButton_5_clicked() 
{ 
pcl::PointCloud::Ptr cloud (new pcl::PointCloud) ; 
int size=45; 
cloud->resize(45); 
for(int ix=0;ix!=45;ix++) 
    { 
    cloud->points[ix].x=ix; 
    cloud->points[ix].y=ix; 
    cloud->points[ix].z=ix;  
    cloud->points[ix].intensity=1; 
    } 
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer (new pcl::visualization::PCLVisualizer ("3D Viewer")); 

    viewer->setBackgroundColor (0.5, 0.5, 0.5); 
    viewer->addPointCloud<pcl::PointXYZI> (cloud, "sample cloud"); 
    viewer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "sample cloud"); 
    viewer->addCoordinateSystem (1.0); 
    while (!viewer->wasStopped()) 
    { 
      viewer->spinOnce (100); 
      boost::this_thread::sleep (boost::posix_time::microseconds 
      (100000)); 
    } 
} 

錯誤連接下面 Link Error image

回答

1

根據MSDN herehere需要在.pro文件鏈接USER32.LIB和GDI32.LIB

LIBS + = -lUser32 -lGdi32

可能會找到完整的解決方案here

+0

發生了一些事情。有10多個鏈接錯誤。它減少到1 error.vtkCommonCore-7.0-gd.lib(vtkWin32OutputWindow.obj): - 1:錯誤:LNK2019:無法解析的外部符號__imp_GetStockObject在函數中引用「protected:static int __cdecl vtkWin32OutputWindow ::初始化(void)「(?初始化@ vtkWin32OutputWindow @@ KAHXZ) –

+0

已更新答案...鏈接到Gdi32.lib被錯過...在將來請搜索錯過的函數源模塊並以類似的方式鏈接它,它是不難發現,謝謝 –

+0

謝謝Max。你是對的。現在錯誤消失了。 –