3

論文のkinectと組み合わせてPointCloudLibraryを使用しようとしていますが、このチュートリアルに従って、Visual Studio 2010でソリューションをコンパイルしようとすると、いくつかのビルドエラーが発生しました。

pcd_write.obj : error LNK2019: unresolved external symbol "public: int __thiscall pcl::PCDWriter::writeASCII(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct sensor_msgs::PointCloud2 const &,class Eigen::Matrix<float,4,1,0,4,1> const &,class Eigen::Quaternion<float,0> const &,int)" (?writeASCII@PCDWriter@pcl@@QAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUPointCloud2@sensor_msgs@@ABV?$Matrix@M$03$00$0A@$03$00@Eigen@@ABV?$Quaternion@M$0A@@8@H@Z) referenced in function "public: virtual int __thiscall pcl::PCDWriter::write(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct sensor_msgs::PointCloud2 const &,class Eigen::Matrix<float,4,1,0,4,1> const &,class Eigen::Quaternion<float,0> const &,bool)" (?write@PCDWriter@pcl@@UAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUPointCloud2@sensor_msgs@@ABV?$Matrix@M$03$00$0A@$03$00@Eigen@@ABV?$Quaternion@M$0A@@8@_N@Z)
pcd_write.obj : error LNK2019: unresolved external symbol "public: int __thiscall pcl::PCDWriter::writeBinary(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct sensor_msgs::PointCloud2 const &,class Eigen::Matrix<float,4,1,0,4,1> const &,class Eigen::Quaternion<float,0> const &)" (?writeBinary@PCDWriter@pcl@@QAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUPointCloud2@sensor_msgs@@ABV?$Matrix@M$03$00$0A@$03$00@Eigen@@ABV?$Quaternion@M$0A@@8@@Z) referenced in function "public: virtual int __thiscall pcl::PCDWriter::write(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct sensor_msgs::PointCloud2 const &,class Eigen::Matrix<float,4,1,0,4,1> const &,class Eigen::Quaternion<float,0> const &,bool)" (?write@PCDWriter@pcl@@UAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUPointCloud2@sensor_msgs@@ABV?$Matrix@M$03$00$0A@$03$00@Eigen@@ABV?$Quaternion@M$0A@@8@_N@Z)
pcd_write.obj : error LNK2019: unresolved external symbol "void __cdecl pcl::console::print(enum pcl::console::VERBOSITY_LEVEL,char const *,...)" (?print@console@pcl@@YAXW4VERBOSITY_LEVEL@12@PBDZZ) referenced in function "public: int __thiscall pcl::PCDWriter::writeASCII<struct pcl::PointXYZ>(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class pcl::PointCloud<struct pcl::PointXYZ> const &,int)" (??$writeASCII@UPointXYZ@pcl@@@PCDWriter@pcl@@QAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$PointCloud@UPointXYZ@pcl@@@1@H@Z)

誰かがこれらのエラーが発生している理由と私がそれらを修正する方法を説明できますか?すべての助けは大歓迎です、そして私はいつも答えを受け入れます!

4

2 に答える 2

4

おそらく間違ったPCLバージョン(64ビット/ 32ビット)を使用しています。64ビットCMakeプロジェクトを生成する場合は、必ずVisual Studio 2010用の64ビットPCLライブラリをインストールしてください。使用されているPCLのバージョンがわからない場合は、Fraserの提案に従って確認できます。

ここから正しいPCLライブラリをダウンロードできます。

于 2012-07-18T08:01:32.747 に答える
2

私はこれと同じエラーを抱えていました、そして私はそれに対する解決策を見つけました。cmakeを使用している場合、64ビットPCLライブラリを使用している場合は、必ずVisual Studio10win64ジェネレーターを選択してください。私はもともとVisualStudio10ジェネレーターを使用していましたが、まったく同じエラーが発生しました。Visual Studio 10 win64ジェネレーターに切り替えたとき、それは魅力のように機能しました。

于 2012-12-13T23:05:44.360 に答える