1

我正在尝试运行一些 pcl 代码(来自他们的网站)。我目前在 ubuntu 上使用 boost 1_51(我构建的)和我的 Eclipse C++ Build->Settings 我 /home/aly/libs/boost_1_51_0/stage/include在包含路径和/home/aly/libs/boost_1_51_0/stage/lib库搜索路径中。我没有/usr/include/usr/lib

在运行时我遇到了一些 boost 错误,这让我认为它可能没有针对正确的库运行,因为 boost_1_46 是内置的/usr/lib(这是 ubuntu 存储库中的最新版本)。所以我libboost_timer.so从目录中删除了一个 lib 文件()/usr/lib并重新编译(这很好)然后运行。在运行时我收到以下错误:

error while loading shared libraries: libboost_thread.so.1.46.1: cannot open shared object file: N

我的问题是,为什么如果/usr/include并且/usr/lib不在我的包含路径和库搜索路径中,我的程序是否在寻找 1.46 版本?

附加信息:

编译 eclipse 正在做: Invoking: Cross G++ Linker

g++ -L/home/aly/libs/OpenCV-2.4.3/release/lib -L/home/aly/libs/boost_1_51_0/stage/lib -o "3DObjectDetection"  ./src/HFNodeSplitCalculator.o ./src/HFNodeUtils.o ./src/HFTreeNode.o ./src/HoughForest.o ./src/ImagePatch.o ./src/Main.o ./src/PatchGenerator.o ./src/utils.o   -lvtkmetaio -lvtkImaging -lvtkIO -lvtkViews -lvtkVolumeRendering -lvtkalglib -lvtkDICOMParser -lvtkInfovis -lvtkFiltering -lvtkGeovis -lGL -lopencv_core -lopencv_highgui -lopencv_imgproc -lpcl_io -lpcl_visualization -lpcl_common -lpcl_surface -lpcl_kdtree -lpcl_search -lpcl_geometry -lpcl_features -lvtkproj4 -lvtkParallel -lvtksys -lvtkRendering -lvtkCommon -lboost_serialization -lboost_timer -lpthread -lboost_context -lboost_date_time -lboost_system -lboost_thread -lboost_filesystem -lboost_random -lboost_regex -lglut -lvtkexoIIc -lvtkCharts -lvtkGenericFiltering
Finished building target: 3DObjectDetection

而我$LD_LIBRARY_PATH的是

:/home/aly/libs/boost_1_51_0/stage/lib/:/home/aly/libs/OpenCV-2.4.2/build/lib/:/usr/lib/:/home/aly/libs/cuda-5.0/lib:/home/aly/libs/cuda-5.0/lib64

如您所见, boost lib 目录出现在之前/usr/lib

4

0 回答 0