/usr/bin/ld: cannot find -lperl
collect2: error: ld returned 1 exit status.
使用的命令
-L/usr/lib/x86_64-linux-gnu/per;/5.30/Core -lperl -ldl -lm -lpthread -lc -lcrypt libtool
在上面的路径上,我看到了这些与 perl 相关的文件
/usr/lib/x86_64-linux-gnu/perl/5.30/CORE$ ls -l | grep perl
-rw-r--r-- 1 root root 48759 Oct 5 10:27 iperlsys.h
-rw-r--r-- 1 root root 270175 Oct 5 10:27 perl.h
-rw-r--r-- 1 root root 6223 Oct 5 10:27 perl_inc_macro.h
-rw-r--r-- 1 root root 2914 Oct 5 10:27 perl_langinfo.h
-rw-r--r-- 1 root root 10170 Oct 5 10:27 perlapi.h
-rw-r--r-- 1 root root 9464 Oct 5 10:27 perlio.h
-rw-r--r-- 1 root root 13761 Oct 5 10:27 perliol.h
-rw-r--r-- 1 root root 527 Oct 5 10:27 perlsdio.h
-rw-r--r-- 1 root root 13314 Oct 5 10:27 perlvars.h
-rw-r--r-- 1 root root 4434 Oct 5 10:27 perly.h
请指教缺少哪个 perl 以及如何修复它
答案1
该消息的/usr/bin/ld: cannot find -lperl
意思是无法找到包提供的ld
共享对象文件:libperl.so
libperl-dev
$ apt-file list libperl-dev
libperl-dev: /usr/lib/x86_64-linux-gnu/libperl.a
libperl-dev: /usr/lib/x86_64-linux-gnu/libperl.so
libperl-dev: /usr/lib/x86_64-linux-gnu/perl/cross-config
libperl-dev: /usr/share/doc/libperl-dev/README.cross
libperl-dev: /usr/share/doc/libperl-dev/changelog.Debian.gz
libperl-dev: /usr/share/doc/libperl-dev/copyright
libperl-dev: /usr/share/lintian/overrides/libperl-dev
由于它位于/usr/lib/x86_64-linux-gnu/
(位于 gcc 编译器针对 x86_64 目标的默认库搜索路径中),因此您不需要提供额外的-L
参数。