boost 库(v1.75 到 1.77)未完全由编译生成

boost libraries (v1.75 to 1.77) aren't fully generated by compilation

我在 ubuntu 16.04 和 18.04 上编译了 boost 库 v1.75、v1.76 和 v1.77。

根据我是在 ubuntu 16.4 还是 18.04 系统上编译 boost 库,我不会获得相同的库集。 在 ubuntu 16.04 上只生成了 96 个库,而在 ubuntu 18.04.

上生成了 123 个库

显然,我在 ubuntu 16.04 上需要一个缺少的库 (libboost_json.a)。

在 ubuntu 16.04 上生成的库列表下方:

cmake                         libboost_filesystem.so               libboost_program_options.so              libboost_stacktrace_noop.so
libboost_atomic.a             libboost_filesystem.so.1.77.0        libboost_program_options.so.1.77.0       libboost_stacktrace_noop.so.1.77.0
libboost_atomic.so            libboost_graph.a                     libboost_python37.a                      libboost_system.a
libboost_atomic.so.1.77.0     libboost_graph.so                    libboost_python37.so                     libboost_system.so
libboost_chrono.a             libboost_graph.so.1.77.0             libboost_python37.so.1.77.0              libboost_system.so.1.77.0
libboost_chrono.so            libboost_iostreams.a                 libboost_random.a                        libboost_test_exec_monitor.a
libboost_chrono.so.1.77.0     libboost_iostreams.so                libboost_random.so                       libboost_thread.a
libboost_container.a          libboost_iostreams.so.1.77.0         libboost_random.so.1.77.0                libboost_thread.so
libboost_container.so         libboost_locale.a                    libboost_regex.a                         libboost_thread.so.1.77.0
libboost_container.so.1.77.0  libboost_locale.so                   libboost_regex.so                        libboost_timer.a
libboost_context.a            libboost_locale.so.1.77.0            libboost_regex.so.1.77.0                 libboost_timer.so
libboost_context.so           libboost_log.a                       libboost_serialization.a                 libboost_timer.so.1.77.0
libboost_context.so.1.77.0    libboost_log_setup.a                 libboost_serialization.so                libboost_type_erasure.a
libboost_contract.a           libboost_log_setup.so                libboost_serialization.so.1.77.0         libboost_type_erasure.so
libboost_contract.so          libboost_log_setup.so.1.77.0         libboost_stacktrace_addr2line.a          libboost_type_erasure.so.1.77.0
libboost_contract.so.1.77.0   libboost_log.so                      libboost_stacktrace_addr2line.so         libboost_unit_test_framework.a
libboost_coroutine.a          libboost_log.so.1.77.0               libboost_stacktrace_addr2line.so.1.77.0  libboost_unit_test_framework.so
libboost_coroutine.so         libboost_numpy37.a                   libboost_stacktrace_backtrace.a          libboost_unit_test_framework.so.1.77.0
libboost_coroutine.so.1.77.0  libboost_numpy37.so                  libboost_stacktrace_backtrace.so         libboost_wave.a
libboost_date_time.a          libboost_numpy37.so.1.77.0           libboost_stacktrace_backtrace.so.1.77.0  libboost_wave.so
libboost_date_time.so         libboost_prg_exec_monitor.a          libboost_stacktrace_basic.a              libboost_wave.so.1.77.0
libboost_date_time.so.1.77.0  libboost_prg_exec_monitor.so         libboost_stacktrace_basic.so             libboost_wserialization.a
libboost_exception.a          libboost_prg_exec_monitor.so.1.77.0  libboost_stacktrace_basic.so.1.77.0      libboost_wserialization.so
libboost_filesystem.a         libboost_program_options.a           libboost_stacktrace_noop.a               libboost_wserialization.so.1.77.0

在 ubuntu 18.04 上生成的库列表下方:

cmake                          libboost_graph.so.1.77.0      libboost_math_tr1l.so.1.77.0             libboost_stacktrace_backtrace.so
libboost_atomic.a              libboost_iostreams.a          libboost_math_tr1.so                     libboost_stacktrace_backtrace.so.1.77.0
libboost_atomic.so             libboost_iostreams.so         libboost_math_tr1.so.1.77.0              libboost_stacktrace_basic.a
libboost_atomic.so.1.77.0      libboost_iostreams.so.1.77.0  libboost_nowide.a                        libboost_stacktrace_basic.so
libboost_chrono.a              libboost_json.a               libboost_nowide.so                       libboost_stacktrace_basic.so.1.77.0
libboost_chrono.so             libboost_json.so              libboost_nowide.so.1.77.0                libboost_stacktrace_noop.a
libboost_chrono.so.1.77.0      libboost_json.so.1.77.0       libboost_numpy27.a                       libboost_stacktrace_noop.so
libboost_container.a           libboost_locale.a             libboost_numpy27.so                      libboost_stacktrace_noop.so.1.77.0
libboost_container.so          libboost_locale.so            libboost_numpy27.so.1.77.0               libboost_system.a
libboost_container.so.1.77.0   libboost_locale.so.1.77.0     libboost_prg_exec_monitor.a              libboost_system.so
libboost_context.a             libboost_log.a                libboost_prg_exec_monitor.so             libboost_system.so.1.77.0
libboost_context.so            libboost_log_setup.a          libboost_prg_exec_monitor.so.1.77.0      libboost_test_exec_monitor.a
libboost_context.so.1.77.0     libboost_log_setup.so         libboost_program_options.a               libboost_thread.a
libboost_contract.a            libboost_log_setup.so.1.77.0  libboost_program_options.so              libboost_thread.so
libboost_contract.so           libboost_log.so               libboost_program_options.so.1.77.0       libboost_thread.so.1.77.0
libboost_contract.so.1.77.0    libboost_log.so.1.77.0        libboost_python27.a                      libboost_timer.a
libboost_coroutine.a           libboost_math_c99.a           libboost_python27.so                     libboost_timer.so
libboost_coroutine.so          libboost_math_c99f.a          libboost_python27.so.1.77.0              libboost_timer.so.1.77.0
libboost_coroutine.so.1.77.0   libboost_math_c99f.so         libboost_random.a                        libboost_type_erasure.a
libboost_date_time.a           libboost_math_c99f.so.1.77.0  libboost_random.so                       libboost_type_erasure.so
libboost_date_time.so          libboost_math_c99l.a          libboost_random.so.1.77.0                libboost_type_erasure.so.1.77.0
libboost_date_time.so.1.77.0   libboost_math_c99l.so         libboost_regex.a                         libboost_unit_test_framework.a
libboost_exception.a           libboost_math_c99l.so.1.77.0  libboost_regex.so                        libboost_unit_test_framework.so
libboost_fiber.a               libboost_math_c99.so          libboost_regex.so.1.77.0                 libboost_unit_test_framework.so.1.77.0
libboost_fiber.so              libboost_math_c99.so.1.77.0   libboost_serialization.a                 libboost_wave.a
libboost_fiber.so.1.77.0       libboost_math_tr1.a           libboost_serialization.so                libboost_wave.so
libboost_filesystem.a          libboost_math_tr1f.a          libboost_serialization.so.1.77.0         libboost_wave.so.1.77.0
libboost_filesystem.so         libboost_math_tr1f.so         libboost_stacktrace_addr2line.a          libboost_wserialization.a
libboost_filesystem.so.1.77.0  libboost_math_tr1f.so.1.77.0  libboost_stacktrace_addr2line.so         libboost_wserialization.so
libboost_graph.a               libboost_math_tr1l.a          libboost_stacktrace_addr2line.so.1.77.0  libboost_wserialization.so.1.77.0
libboost_graph.so              libboost_math_tr1l.so         libboost_stacktrace_backtrace.a

非常感谢提示。

在 ubuntu 16.04 上,我的编译器是:

(base) syl@WorkStation-T3500:~/tmp/boost_1_77_0$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609

此版本不支持必要的 C++11 标准要求。

我不得不通过 b2 将 gcc“-std”选项强制用于 C++14:

 ./b2 cxxflags="-std=c++14"

然后所有库都被编译并正确生成。