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

Reply via email to