加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

找不到-lperl在c上做一个makefile

发布时间:2020-12-16 09:46:08 所属栏目:百科 来源:网络整理
导读:抱歉我的英语不好…… 嗯,我现在是linux,perl和c,但是我必须为大学做一些代码,而且在做makefile时我遇到了一些麻烦. 我在perl中有一个完美运行的代码.同样,我在C中有一个代码,它将perl作为子例程调用.一切都运行正常,但是当我在计算机上执行makefile时,它说
抱歉我的英语不好……

嗯,我现在是linux,perl和c,但是我必须为大学做一些代码,而且在做makefile时我遇到了一些麻烦.

我在perl中有一个完美运行的代码.同样,我在C中有一个代码,它将perl作为子例程调用.一切都运行正常,但是当我在计算机上执行makefile时,它说:

sathlervbn Spam C # make clean; make
rm -f *.o
g++  -Wall  -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/perl/5.14/CORE     -c -o main.o main.cpp
g++ -L/usr/lib -Wall -Wl,-E  -fstack-protector -L/usr/local/lib  -L/usr/lib/perl/5.14/CORE -    lperl -ldl -lm -lpthread -lc -lcrypt -o main libSpam.a main.o
/usr/bin/ld: cannot find -lperl
collect2: error: ld returned 1 exit status
make: *** [main] Error 1

问题是,当我在教授的计算机上运行makefile时,它的工作原理……

这是makefile的代码:

#CC= /usr/bin/g++
CPP = g++
CPPFLAGS = -Wall $(shell perl -MExtUtils::Embed -e ccopts)

#LD= /usr/bin/g++
LD = g++

#LFLAGS = -Wall $(shell perl -MExtUtils::Embed -e ldopts)

LFLAGS = -Wall -Wl,-E  -fstack-protector -L/usr/local/lib  -L/usr/lib/perl/5.14/CORE - lperl -ldl -lm -lpthread -lc -lcrypt

MAINOBJS = libSpam.a main.o

EMAILS = main

EXECS = $(EMAILS)

#Regra Implicita:
.c.o:
    $(CPP) $(CPPFLAGS) -c $<

all: emails

emails: $(EMAILS)

main: $(MAINOBJS)
    $(LD) -L/usr/lib $(LFLAGS) -o $@ $(MAINOBJS)

clean:
    rm -f *.o

有谁知道如何解决它?

解决方法

您需要为C安装perl库.如果您使用的是基于Debian的系统(包括Ubuntu)sudo apt-get install libperl-dev或类似的东西可能就足够了,具体取决于您使用的perl版本.

更新:好的,这有点奇怪 – 我已经安装了perl-base,它安装了/usr/lib/libperl.so.5.14但它没有像你那样创建/usr/lib/libperl.so符号链接期望.我想知道为什么不呢?如果我用ln -s /usr/lib/libperl.so.5.14 /usr/lib/libperl.so手动创建符号链接,它会正确链接.

更新第二个我安装了perl-base,但不是libperl-dev,它给了我/usr/lib/libperl.so.5.14但不是/usr/lib/libperl.so.我怀疑(不确定,但强烈怀疑)正确的答案不是手动制作符号链接,而是安装libperl-dev.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读