web-dev-qa-db-ja.com

Ubuntu 16.04でPCL 1.7をコンパイルすると、CMakeで生成されたMakefileのエラー

PCL 1.7(他のpclではなく点群ライブラリ)をUbuntu 16.04で動作させようとしています。最終的にはC++のものに使用したいと思っていますが、今は例を機能させることだけを試みています。私は、Ubuntu(GNU 5.3.1)に付属するデフォルトのコンパイラーとCmakeバージョン3.5.2を使用しています。私はPCLのWebサイト( ここ および ここ )の指示に従ってきましたが、現在、Cmakeにビルドさせた後、 'make'コマンドを使用した時点で行き詰まっています。構築したいもの。これは私が得るエラーです

[ 50%] Building CXX object CMakeFiles/pcd_write.dir/pcd_write.cpp.o
<command-line>:0:15: warning: missing whitespace after the macro name
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so', needed by 'pcd_write'.  Stop.
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/pcd_write.dir/all' failed
make[1]: *** [CMakeFiles/pcd_write.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Cmakeは私がビルドしているときにも警告を出します、そしてそれらはここにあります。実行を停止するわけではありませんが、関連性があるかもしれません。

-- Found OpenNI2: /usr/lib/libOpenNI2.so  
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
-- The imported target "vtkRenderingPythonTkWidgets" references the file
   "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   " /usr/lib/cmake/vtk-6.2/VTKTargets.cmake"
    but not all the files it references.

また、関連がある場合は、VTKについて同様の警告が出されたときに、私は以前に愚かなことをしました。/user/bin/vtkの名前が変わったとか、そうだったとか。このバージョンのVTKは、それ自体をvtk6と呼びました。メイクファイルでルートを見つけて変更し、Cmakeがvtk6を探すように変更しましたが、どこにも見つからなかったため、ビンに移動してvtkという名前のvtk6のコピーを作成しましたが、停止しました私に警告を与えます。

私が使用しているものの他の関連バージョンは、eigen3 3.2.92、boost 1.58.0、flan 1.8.4、vtk6、およびlibopenni2バージョン2.2.0.3です。

繰り返しますが、これが実際にどれほど重要であるかはわかりませんが、あいまいなIMOよりも具体的である方が適切です。

11
Brandon Powers

このバグはまだ16.04にありますが、回避策があります。

  1. Sudo apt install _libproj-dev_

  2. 次の行をCMakeLists.txtファイルに追加します。
    list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")

1つ目は必要な_libproj.so_を提供し、2つ目は存在しない(および不要な)libvtkproj4に対してリンクするときのエラーを修正します。

存在しない参照ファイルに関する他のエラーは無害であるように見えます(または少なくとも私のプロジェクトは同じエラーがあってもコンパイルされます)。

詳細については、以下を参照してください。
https://bugs.launchpad.net/ubuntu/+source/pcl/+bug/1573174
https://bugs.launchpad.net/ubuntu/+source/vtk6/+bug/1573234

15
mesilliac

これは私のために問題を解決しました:

Sudo apt-get install libproj-dev

ソース: https://github.com/PointCloudLibrary/pcl/issues/1828

Vtk6でのインストールに問題があるようです

ここで説明: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=819741

素早い修正:リクエストされたディレクトリにシンボリックリンクlibproj.soを作成します。

Sudo ln -s  /usr/lib/x86_64-linux-gnu/libproj.so.<your-version> /usr/lib/x86_64-linux-gnu/libproj.so
2