A dependency was removed accidentally
Several weeks ago, a dependency was removed by apt remove libc6
. After I reinstalled ROS, everything seems to work well.
But when compiling PCL, some share lib may be removed with the previous dependency.
So error occured:
~/Downloads/nozuonodie/pcl-pcl-1.7.2/build$ make -j4
[ 1%] Built target pcl_pcd_convert_NaN_nan
[ 1%] Built target pcl_io_ply
[ 1%] Built target pcl_octree
[ 1%] Built target pcl_people
[ 2%] Built target pcl_plyheader
[ 5%] Built target pcl_common
[ 5%] Built target pcl_ply2raw
[ 6%] Built target pcl_ply2obj
[ 7%] Built target pcl_ply2ply
[ 7%] Built target pcl_kdtree
[ 8%] Built target pcl_search
[ 11%] Built target pcl_sample_consensus
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libpcap.so', needed by 'lib/libpcl_io.so.1.7.2'. Stop.
CMakeFiles/Makefile2:402: recipe for target 'io/CMakeFiles/pcl_io.dir/all' failed
make[1]: *** [io/CMakeFiles/pcl_io.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 16%] Built target pcl_surface
[ 23%] Built target pcl_filters
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
Problem solved
Since just some lib missing, it is easy to solve the problem by download the file to where they belong to.
In my machine missing files
~$ locate libpcap
/snap/core/8268/usr/lib/x86_64-linux-gnu/libpcap.so.0.8
/snap/core/8268/usr/lib/x86_64-linux-gnu/libpcap.so.1.7.4
/snap/core/8268/usr/share/doc/libpcap0.8
/snap/core/8268/usr/share/doc/libpcap0.8/changelog.Debian.gz
/snap/core/8268/usr/share/doc/libpcap0.8/copyright.gz
/usr/lib/x86_64-linux-gnu/libpcap.so.0.8
/usr/lib/x86_64-linux-gnu/libpcap.so.1.7.4
/usr/share/doc/libpcap0.8
/usr/share/doc/libpcap0.8/CREDITS.gz
/usr/share/doc/libpcap0.8/README
/usr/share/doc/libpcap0.8/README.Debian
/usr/share/doc/libpcap0.8/changelog.Debian.gz
/usr/share/doc/libpcap0.8/copyright
/var/lib/dpkg/info/libpcap0.8:amd64.list
/var/lib/dpkg/info/libpcap0.8:amd64.md5sums
/var/lib/dpkg/info/libpcap0.8:amd64.shlibs
/var/lib/dpkg/info/libpcap0.8:amd64.symbols
/var/lib/dpkg/info/libpcap0.8:amd64.triggers
In another usual computer
~$ locate libpcap
/usr/lib/x86_64-linux-gnu/libpcap.a
/usr/lib/x86_64-linux-gnu/libpcap.so
/usr/lib/x86_64-linux-gnu/libpcap.so.0.8
/usr/lib/x86_64-linux-gnu/libpcap.so.1.7.4
/usr/share/doc/libpcap0.8
/usr/share/doc/libpcap0.8-dev
/usr/share/doc/libpcap0.8/CREDITS.gz
/usr/share/doc/libpcap0.8/README
/usr/share/doc/libpcap0.8/README.Debian
/usr/share/doc/libpcap0.8/changelog.Debian.gz
/usr/share/doc/libpcap0.8/copyright
/usr/share/doc/libpcap0.8-dev/changelog.Debian.gz
/usr/share/doc/libpcap0.8-dev/copyright
/var/lib/dpkg/info/libpcap0.8-dev.list
/var/lib/dpkg/info/libpcap0.8-dev.md5sums
/var/lib/dpkg/info/libpcap0.8-dev.preinst
/var/lib/dpkg/info/libpcap0.8:amd64.list
/var/lib/dpkg/info/libpcap0.8:amd64.md5sums
/var/lib/dpkg/info/libpcap0.8:amd64.shlibs
/var/lib/dpkg/info/libpcap0.8:amd64.symbols
/var/lib/dpkg/info/libpcap0.8:amd64.triggers
Focus on the lib, which means we need is some file has .a
or .so
.
/usr/lib/x86_64-linux-gnu/libpcap.a
/usr/lib/x86_64-linux-gnu/libpcap.so
Download the libpacp.a
and libpcap.so
. Copy them to the directory
sudo cp ~/Downloads/libpcap.a /usr/lib/x86_64-linux-gnu/
sudo cp ~/Downloads/libpcap.so /usr/lib/x86_64-linux-gnu/