7

http://pointclouds.org/documentation/tutorials/pcl_visualizer.phpから次のPCLシンプルビューアーの例を実行しようとしています 。Cmakeと推奨されるCmakelists.txtを使用してバイナリツリーを正常に構築しました。

生成後、ビルドしようとすると、次のエラーが発生します。

error LNK2019: unresolved external symbol "public: void __thiscall pcl::visualization::PCLVisualizer::initCameraParameters(void)" (?initCameraParameters@PCLVisualizer@visualization@pcl@@QAEXXZ) referenced in function "class boost::shared_ptr<class pcl::visualization::PCLVisualizer> __cdecl simpleVis(class boost::shared_ptr<class pcl::PointCloud<struct pcl::PointXYZ> const >)" (?simpleVis@@YA?AV?$shared_ptr@VPCLVisualizer@visualization@pcl@@@boost@@V?$shared_ptr@$$CBV?$PointCloud@UPointXYZ@pcl@@@pcl@@@2@@Z)`

error LNK2019: unresolved external symbol "public: void __thiscall pcl::visualization::PCLVisualizer::addCoordinateSystem(double,int)" (?addCoordinateSystem@PCLVisualizer@visualization@pcl@@QAEXNH@Z) referenced in function "class boost::shared_ptr<class pcl::visualization::PCLVisualizer> __cdecl simpleVis(class boost::shared_ptr<class pcl::PointCloud<struct pcl::PointXYZ> const >)" (?simpleVis@@YA?AV?$shared_ptr@VPCLVisualizer@visualization@pcl@@@boost@@V?$shared_ptr@$$CBV?$PointCloud@UPointXYZ@pcl@@@pcl@@@2@@Z)


error LNK2019: unresolved external symbol "public: bool __thiscall pcl::visualization::PCLVisualizer::setPointCloudRenderingProperties(int,double,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" (?setPointCloudRenderingProperties@PCLVisualizer@visualization@pcl@@QAE_NHNABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) referenced in function "class boost::shared_ptr<class pcl::visualization::PCLVisualizer> __cdecl simpleVis(class boost::shared_ptr<class pcl::PointCloud<struct pcl::PointXYZ> const >)" (?simpleVis@@YA?AV?$shared_ptr@VPCLVisualizer@visualization@pcl@@@boost@@V?$shared_ptr@$$CBV?$PointCloud@UPointXYZ@pcl@@@pcl@@@2@@Z)

そして、これらはほんの数例です... cmakelists.txtに何かが欠けていますか?

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

project(pcl_visualizer_viewports)

find_package(PCL 1.5.1 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})

link_directories(${PCL_LIBRARY_DIRS})

add_definitions(${PCL_DEFINITIONS})

add_executable (pcl_visualizer_demo pcl_visualizer_demo.cpp)

target_link_libraries (pcl_visualizer_demo ${PCL_LIBRARIES})

どんな助けでも大歓迎です。ありがとう

4

5 に答える 5

4

問題の原因を特定しました。64ビットマシンを実行していますが、コンパイラ(VS2010)が32ビット用に構成されているため、64ビットのポイントクラウドライブラリをアンインストールして、32ビットバージョンをインストールする必要がありました。今では動作します。学んだ教訓:D

于 2012-04-26T18:15:31.730 に答える
1

PCLライブラリをリンクしていないようです。これは、${PCL_LIBRARIES}CMakeの実行時にが適切に設定されていないことが原因である可能性があります。追加できます

message("PCL_LIBRARIES - ${PCL_LIBRARIES}")

find_package値を確認するために呼び出した後、CMakeLists.txtファイルに追加します。

CMake v2.8.8を使用している場合、このバグが問題の原因である可能性があります。v2.8.7に戻してみてください。

于 2012-04-26T13:44:28.897 に答える
0

とても複雑なので、そのようにエラーを見つけることができると思います。コンピューター、Windows 764ビットおよびVStudio2010にPCLをインストールしましたが、サンプルは正常に実行されます。

PCLと依存関係が正しくインストールされていることを確認してください。こちらのダウンロードセクションをご覧ください。私の場合、「オールインワン」バージョンをダウンロードしました。

指示に従って、ステップバイステップで、それほど複雑ではありません。

ここで「cmakeファイル」がどのように構成されているかを確認したら、最新バージョンのcmakeをダウンロードしてみてください

そして最後に、ここのPCLWebサイトで基本的なプロジェクトを実行します

良い1日を

于 2012-08-17T17:37:13.867 に答える
0

私も同じ問題を抱えていて、pcl_visualization.libファイルを手動でリンクすることで解決しました。Visual C++2010で次の手順を試すことができます。

プロジェクトのプロパティ->リンカー->入力->追加の依存関係->ファイルを追加します。

私の場合、リリース用にG:\ PCL \ PCL 1.6.0 \ lib \ pcl_visualization_release.lib追加し、デバッグ用にG:\ PCL \ PCL 1.6.0 \ lib\pcl_visualization_debug.libを追加しました。

それは私のために働いた。

于 2014-01-08T10:11:06.477 に答える
0

ここでは、Windowsの1つのインストーラーにPCL1.8.1をすべてインストールする方法を説明しました。そして、何が問題だったのかを確認してください。

ここに画像の説明を入力してください

于 2019-04-10T06:57:44.350 に答える