boost 1.49 for ubuntu and libboost_date_time

boost 1.49 for ubuntu and libboost_date_time

本文关键字:libboost date time and ubuntu for boost      更新时间:2023-10-16

我刚刚在ubuntu上安装了boost 1.49版本,过程很顺利。然而,现在当我运行任何文件时(因此我不会发布c++文件,因为它发生在每个使用libboost_date_time的文件中),我会得到以下错误:

./test.shared.array.exe: error while loading shared libraries: libboost_date_time.so.1.49.0: cannot open shared object file: No such file or directory

我查看了boost.build在哪里安装了库,并在/usr/local/ 中看到了libboost_date_time.so.1.49.0

那我为什么会犯这样的错误。我该如何解决这个问题。

这些是/usr/local/boost_1_49_0 的内容

/usr/local/boost_1_49_0$ ls
b2      boost-build.jam  bootstrap.bat  index.htm   libs                rst.css
bin.v2  boostcpp.jam     bootstrap.log  index.html  LICENSE_1_0.txt     status
bjam    boost.css        bootstrap.sh   INSTALL     more                tools
boost   boost.png        doc            Jamroot     project-config.jam

这就是我在里的

/usr/local/lib$ ls
libboost_chrono.a              libboost_prg_exec_monitor.so.1.49.0
libboost_chrono.so             libboost_program_options.a
libboost_chrono.so.1.49.0      libboost_program_options.so
libboost_date_time.a           libboost_program_options.so.1.49.0
libboost_date_time.so          libboost_random.a
libboost_date_time.so.1.49.0   libboost_random.so
libboost_exception.a           libboost_random.so.1.49.0
libboost_filesystem.a          libboost_regex.a
libboost_filesystem.so         libboost_regex.so
libboost_filesystem.so.1.49.0  libboost_regex.so.1.49.0
libboost_graph.a               libboost_serialization.a
libboost_graph.so              libboost_serialization.so
libboost_graph.so.1.49.0       libboost_serialization.so.1.49.0
libboost_iostreams.a           libboost_signals.a
libboost_iostreams.so          libboost_signals.so
libboost_iostreams.so.1.49.0   libboost_signals.so.1.49.0
libboost_locale.a              libboost_system.a
libboost_locale.so             libboost_system.so
libboost_locale.so.1.49.0      libboost_system.so.1.49.0
libboost_math_c99.a            libboost_test_exec_monitor.a
libboost_math_c99f.a           libboost_thread.a
libboost_math_c99f.so          libboost_thread.so
libboost_math_c99f.so.1.49.0   libboost_thread.so.1.49.0
libboost_math_c99l.a           libboost_timer.a
libboost_math_c99l.so          libboost_timer.so
libboost_math_c99l.so.1.49.0   libboost_timer.so.1.49.0
libboost_math_c99.so           libboost_unit_test_framework.a
libboost_math_c99.so.1.49.0    libboost_unit_test_framework.so
libboost_math_tr1.a            libboost_unit_test_framework.so.1.49.0
libboost_math_tr1f.a           libboost_wave.a
libboost_math_tr1f.so          libboost_wave.so
libboost_math_tr1f.so.1.49.0   libboost_wave.so.1.49.0
libboost_math_tr1l.a           libboost_wserialization.a
libboost_math_tr1l.so          libboost_wserialization.so
libboost_math_tr1l.so.1.49.0   libboost_wserialization.so.1.49.0
libboost_math_tr1.so           ocaml
libboost_math_tr1.so.1.49.0    perl
libboost_prg_exec_monitor.a    python2.7
libboost_prg_exec_monitor.so   R

您的系统可能没有在这个路径中查找.so

检查/etc/ld.so.conf以查看要搜索哪些目录的so。/usr/local是一个奇怪的安装位置。我希望是/usr/lib或/usr/local/lib。

[编辑以反映新信息]

由于您已经在/usr/local/lib中安装了boost(我假设所有.so都在下面),并且此路径已经在/etc/ld.so.conf.d中,因此可以尝试运行ldconfig:

sudo ldconfig

确保使用正确的库进行编译,例如:

gcc test.shared.array.cpp-lbost_date_time