I installed the C++ boost libraries from the downloaded tar archive because the eopkg version is lagging behind in version numbers. All .a and .so files are located in /usr/local/lib
When I'm running ldconfig I get the following output:
$ sudo ldconfig /usr/local/lib/ -v | grep boost
ldconfig: Can't stat /usr/lib32/libfakeroot: No such file or directory
ldconfig: Path `/usr/lib64' given more than once
ldconfig: Can't stat /usr/libx32: No such file or directory
libboost_locale.so.1.72.0 -> libboost_locale.so.1.72.0
libboost_context.so.1.72.0 -> libboost_context.so.1.72.0
libboost_stacktrace_noop.so.1.72.0 -> libboost_stacktrace_noop.so.1.72.0
libboost_date_time.so.1.72.0 -> libboost_date_time.so.1.72.0
libboost_math_tr1.so.1.72.0 -> libboost_math_tr1.so.1.72.0
libboost_wave.so.1.72.0 -> libboost_wave.so.1.72.0
libboost_type_erasure.so.1.72.0 -> libboost_type_erasure.so.1.72.0
libboost_numpy27.so.1.72.0 -> libboost_numpy27.so.1.72.0
libboost_atomic.so.1.72.0 -> libboost_atomic.so.1.72.0
libboost_serialization.so.1.72.0 -> libboost_serialization.so.1.72.0
libboost_regex.so.1.72.0 -> libboost_regex.so.1.72.0
libboost_random.so.1.72.0 -> libboost_random.so.1.72.0
libboost_python27.so.1.72.0 -> libboost_python27.so.1.72.0
libboost_stacktrace_basic.so.1.72.0 -> libboost_stacktrace_basic.so.1.72.0
libboost_program_options.so.1.72.0 -> libboost_program_options.so.1.72.0
libboost_prg_exec_monitor.so.1.72.0 -> libboost_prg_exec_monitor.so.1.72.0
libboost_math_c99.so.1.72.0 -> libboost_math_c99.so.1.72.0
libboost_contract.so.1.72.0 -> libboost_contract.so.1.72.0
libboost_math_c99f.so.1.72.0 -> libboost_math_c99f.so.1.72.0
libboost_fiber.so.1.72.0 -> libboost_fiber.so.1.72.0
libboost_iostreams.so.1.72.0 -> libboost_iostreams.so.1.72.0
libboost_stacktrace_addr2line.so.1.72.0 -> libboost_stacktrace_addr2line.so.1.72.0
libboost_container.so.1.72.0 -> libboost_container.so.1.72.0
libboost_coroutine.so.1.72.0 -> libboost_coroutine.so.1.72.0
libboost_filesystem.so.1.72.0 -> libboost_filesystem.so.1.72.0
libboost_system.so.1.72.0 -> libboost_system.so.1.72.0
libboost_thread.so.1.72.0 -> libboost_thread.so.1.72.0
libboost_wserialization.so.1.72.0 -> libboost_wserialization.so.1.72.0
libboost_timer.so.1.72.0 -> libboost_timer.so.1.72.0
libboost_graph.so.1.72.0 -> libboost_graph.so.1.72.0
libboost_chrono.so.1.72.0 -> libboost_chrono.so.1.72.0
libboost_unit_test_framework.so.1.72.0 -> libboost_unit_test_framework.so.1.72.0
libboost_log_setup.so.1.72.0 -> libboost_log_setup.so.1.72.0
libboost_math_tr1l.so.1.72.0 -> libboost_math_tr1l.so.1.72.0
libboost_math_c99l.so.1.72.0 -> libboost_math_c99l.so.1.72.0
libboost_log.so.1.72.0 -> libboost_log.so.1.72.0
libboost_math_tr1f.so.1.72.0 -> libboost_math_tr1f.so.1.72.0
That seems okay to me as all the boost libraries are at least found.
However when I try to compile a program using the boost libraries I get the following error output:
[ 99%] Built target <myapp>
[100%] Linking CXX executable ../bin/MyApp
/usr/bin/ld: cannot find -lboost_chrono
/usr/bin/ld: cannot find -lboost_thread
/usr/bin/ld: cannot find -lboost_filesystem
/usr/bin/ld: cannot find -lboost_program_options
/usr/bin/ld: cannot find -lboost_log_setup
/usr/bin/ld: cannot find -lboost_iostreams
/usr/bin/ld: cannot find -lboost_log
/usr/bin/ld: cannot find -lboost_system
collect2: error: ld returned 1 exit status
make[2]: *** [MyApp-Main/CMakeFiles/MyApp.dir/build.make:120: bin/MyApp] Error 1
make[1]: *** [CMakeFiles/Makefile2:143: MyApp-Main/CMakeFiles/MyApp.dir/all] Error 2
make: *** [Makefile:104: all] Error 2
Clearly compiling is successful and the boost headers are found, otherwise it wouldn't reach 100%, however the linker has issues resolving the boost libraries.
Upon further inspection, linking to one of the boost libraries in question with verbose output on reveals the following:
$ ld -lboost_system --verbose
==================================================
ld: mode elf_x86_64
attempt to open /usr/x86_64-solus-linux/lib64/libboost_system.so failed
attempt to open /usr/x86_64-solus-linux/lib64/libboost_system.a failed
attempt to open /usr/lib64/libboost_system.so failed
attempt to open /usr/lib64/libboost_system.a failed
attempt to open /lib64/libboost_system.so failed
attempt to open /lib64/libboost_system.a failed
attempt to open /usr/lib32/libboost_system.so failed
attempt to open /usr/lib32/libboost_system.a failed
attempt to open /lib32/libboost_system.so failed
attempt to open /lib32/libboost_system.a failed
attempt to open /usr/x86_64-solus-linux/lib/libboost_system.so failed
attempt to open /usr/x86_64-solus-linux/lib/libboost_system.a failed
ld: cannot find -lboost_system
The linker does not even look in the correct folder.
I'm stumped here as I don't know how else to point the linker other than using ldconfig and how Solus under the hood differs from Ubuntu as the installation and linking seems to work fine there.