web-dev-qa-db-ja.com

libboost-mtが見つかりません

私はkinectを使用して土壌侵食の3Dモデルを取得し、植生をスキャンしています。kinect用にこのアプリケーションをコンパイルしようとしています: http://www.ccs.neu.edu/research/gpc/ imucam/index.html 、ただしmakeを実行すると、次のエラーが表示されます。

    linking record_frames from record_frames.o fps.o frame.o grabber.o interactor.o os.o pick_player.o player.o reader.o recorder.o source.o um6.o viewer.o writer.o
/usr/bin/ld: cannot find -lboost_serialization-mt
/usr/bin/ld: cannot find -lboost_system-mt
/usr/bin/ld: cannot find -lboost_filesystem-mt
/usr/bin/ld: cannot find -lboost_thread-mt
/usr/bin/ld: cannot find -lboost_date_time-mt
/usr/bin/ld: cannot find -lboost_iostreams-mt
/usr/bin/ld: cannot find -lboost_regex-mt
/usr/bin/ld: cannot find -lboost_mpi-mt
collect2: error: ld returned 1 exit status
make: *** [record_frames.bin] Error 1

私はメイクファイルを読んで見つけました:

DEF_BOOST_LIBS := -lboost_serialization-mt -lboost_system-mt \
          -lboost_filesystem-mt -lboost_thread-mt \
          -lboost_date_time-mt -lboost_iostreams-mt \
          -lboost_regex-mt -lboost_mpi-mt

したがって、私の質問は、makefileでlibbost.soライブラリを呼び出す方法です。 libboost 1.55があります。 .soのmtを変更しようとしましたが、同じエラーが表示されます。

/usr/bin/ld: cannot find -libboost_serialization.so

この心配を解決するための助けは素晴らしいことです、事前にホセ・ソト

1

Libboostライブラリの名前が変更され、「-mt」が削除されました。おそらく、メイクファイルを編集して名前の-mtを削除するか、 http://forum.freecadweb.org/viewtopic。 php?t = 4541 メイクファイルを再構築します。


Kinectには64ビットが必要で、ブートライブラリは32ビットディレクトリにあります。 64ビットマシンを使用していますか?使用している場合、64ビットブーストパッケージをインストールできますか?


ターミナルで、実行します

 uname -a 

oSが32ビットか64ビットかを確認します(X86_64は64ビットを示します)。 OSの32ビットバージョンをインストールした可能性があります。


64ビットバージョンであるかどうか、個々のパッケージを確認します。

dpkg -l |fgrep boost  

例えばパッケージ名の「:AMD64」。

ii libboost-filesystem-dev:AMD64 1.54.0.1ubuntu1 ...
「AMD64」の代わりに「:i386」を取得した場合、それは32ビットバージョンです。明示的にインストールしない限り、どのようにそれが起こるのかわかりません(インストール時のパッケージ名に ":i386"を含みます。必要な64ビットのブーストパッケージをインストールするには、次のようにします。

Sudo apt-get install  libboost-filesystem-dev  

または単にlibboost-filesystem-dev:AMD64を使用して64ビットパッケージを強制します。 i386バージョンのアンインストールについて心配する必要はありません。それらは異なるディレクトリですが、それらを削除する場合は、パッケージ名に ":i386"を使用して64ビットバージョンで選択します。

14.04システムで、最新のkinectパッケージ(imucam-R186M_2014-05-29を含む)をダウンロードし、欠落していたブーストライブラリを追加し、メイクファイルを編集して「-mt」を削除し、すべてが1つのopenni警告で正常にコンパイルされました。

2
ubfan1