Public bug reported: The package is missing a symlink, so the linker doesn't find the library without prodding.
╭╴ (master *%=)╶╮ ╰ [bug.out] jeff@birdsong:src $ dpkg -L libboost-program-options1.65.1 /. /usr /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 /usr/share /usr/share/doc /usr/share/doc/libboost-program-options1.65.1 /usr/share/doc/libboost-program-options1.65.1/changelog.Debian.gz /usr/share/doc/libboost-program-options1.65.1/copyright /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/libboost-program-options1.65.1 ╭╴ (master *%=)╶╮ ╰ [bug.out] jeff@birdsong:src $ Compiling against the library fails. ╭╴ (master *%=)╶╮ ╰ jeff@birdsong:src $ g++ -ggdb3 -Wall -std=c++14 -o myname myname1.o ... mynameN.o -lprotobuf -lboost_program_options -lbz2 -lcrypto++ /usr/bin/x86_64-linux-gnu-ld: cannot find -lboost_program_options collect2: error: ld returned 1 exit status ╭╴ (master *%=)╶╮ ╰ 1, jeff@birdsong:src $ Running strace (under "script foo.out") thus: strace -f g++ -ggdb3 -Wall -std=c++14 -o myname myname1.o ... mynameN.o -lboost_program_options -lOtherStdLibraries shows that the linker is looking for only these paths in /usr/lib/x86_64 -linux-gnu/: ╭╴ (master *%=)╶╮ ╰ jeff@birdsong:src $ grep boost foo.out | grep /usr/lib/x86_64-linux-gnu [pid 6715] stat("/usr/lib/x86_64-linux-gnu/libboost_program_options.so", 0x7ffcf5613f40) = -1 ENOENT (No such file or directory) [pid 6715] openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libboost_program_options.so", O_RDONLY) = -1 ENOENT (No such file or directory) [pid 6715] stat("/usr/lib/x86_64-linux-gnu/libboost_program_options.a", 0x7ffcf5613f90) = -1 ENOENT (No such file or directory) [pid 6715] openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libboost_program_options.a", O_RDONLY) = -1 ENOENT (No such file or directory) [pid 6715] stat("//usr/lib/x86_64-linux-gnu/libboost_program_options.so", 0x7ffcf5613f40) = -1 ENOENT (No such file or directory) [pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu/libboost_program_options.so", O_RDONLY) = -1 ENOENT (No such file or directory) [pid 6715] stat("//usr/lib/x86_64-linux-gnu/libboost_program_options.a", 0x7ffcf5613f90) = -1 ENOENT (No such file or directory) [pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu/libboost_program_options.a", O_RDONLY) = -1 ENOENT (No such file or directory) [pid 6715] stat("//usr/lib/x86_64-linux-gnu64/libboost_program_options.so", 0x7ffcf5613f40) = -1 ENOENT (No such file or directory) [pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu64/libboost_program_options.so", O_RDONLY) = -1 ENOENT (No such file or directory) [pid 6715] stat("//usr/lib/x86_64-linux-gnu64/libboost_program_options.a", 0x7ffcf5613f90) = -1 ENOENT (No such file or directory) [pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu64/libboost_program_options.a", O_RDONLY) = -1 ENOENT (No such file or directory) ╭╴ (master *%=)╶╮ ╰ jeff@birdsong:src $ grep boost foo.out | grep /usr/lib/x86_64-linux-gnu | grep -v gnu64 [pid 6715] stat("/usr/lib/x86_64-linux-gnu/libboost_program_options.so", 0x7ffcf5613f40) = -1 ENOENT (No such file or directory) [pid 6715] openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libboost_program_options.so", O_RDONLY) = -1 ENOENT (No such file or directory) [pid 6715] stat("/usr/lib/x86_64-linux-gnu/libboost_program_options.a", 0x7ffcf5613f90) = -1 ENOENT (No such file or directory) [pid 6715] openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libboost_program_options.a", O_RDONLY) = -1 ENOENT (No such file or directory) [pid 6715] stat("//usr/lib/x86_64-linux-gnu/libboost_program_options.so", 0x7ffcf5613f40) = -1 ENOENT (No such file or directory) [pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu/libboost_program_options.so", O_RDONLY) = -1 ENOENT (No such file or directory) [pid 6715] stat("//usr/lib/x86_64-linux-gnu/libboost_program_options.a", 0x7ffcf5613f90) = -1 ENOENT (No such file or directory) [pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu/libboost_program_options.a", O_RDONLY) = -1 ENOENT (No such file or directory) ╭╴ (master *%=)╶╮ ╰ jeff@birdsong:src $ Adding this symlink fixes the problem: jeff@birdsong:~ $ cd /usr/lib/x86_64-linux-gnu jeff@birdsong:x86_64-linux-gnu $ sudo ln -s libboost_program_options.so.1.65.1 libboost_program_options.so [sudo] password for jeff: jeff@birdsong:x86_64-linux-gnu $ ProblemType: Bug DistroRelease: Ubuntu 18.04 Package: libboost-program-options1.65.1 1.65.1+dfsg-0ubuntu5 ProcVersionSignature: Ubuntu 4.15.0-23.25-generic 4.15.18 Uname: Linux 4.15.0-23-generic x86_64 ApportVersion: 2.20.9-0ubuntu7.2 Architecture: amd64 CurrentDesktop: i3 Date: Thu Jun 14 10:39:31 2018 Dependencies: gcc-8-base 8-20180414-1ubuntu2 libc6 2.27-3ubuntu1 libgcc1 1:8-20180414-1ubuntu2 libstdc++6 8-20180414-1ubuntu2 EcryptfsInUse: Yes InstallationDate: Installed on 2015-10-23 (964 days ago) InstallationMedia: Ubuntu 15.04 "Vivid Vervet" - Release amd64 (20150422) SourcePackage: boost1.65.1 UpgradeStatus: Upgraded to bionic on 2018-06-14 (0 days ago) ** Affects: boost1.65.1 (Ubuntu) Importance: Undecided Status: New ** Tags: amd64 apport-bug bionic -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1776861 Title: missing symlink for libboost_program_options.so To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/boost1.65.1/+bug/1776861/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs