linux下安装PBC库,configure时出错,大神帮帮忙啊
安装PBC这个库,之前需要先安装GMP,我GMP安装好了,然后来安PBC的时候,./configure时就通不过。下面是显示的问题:checkingforflex...n...
安装PBC这个库,之前需要先安装GMP,我GMP安装好了,然后来安PBC的时候,./configure时就通不过。
下面是显示的问题:
checking for flex... no
checking for lex... no
************************
flex not found
************************
之后进行make时,就显示如下:
zzy@ubuntu:~/Downloads/pbc-0.5.14$ make
make: *** No targets specified and no makefile found. Stop.
zzy@ubuntu:~/Downloads/pbc-0.5.14$
这是什么问题啊,难道是我GMP没装成功?
现在configure通过了,但是make又出问题了:
/usr/bin/ld: pbc_pbc-pbc.o: undefined reference to symbol '__gmpz_init'
/usr/bin/ld: note: '__gmpz_init' is defined in DSO /usr/lib/i386-linux-gnu/libgmp.so.10 so try adding it to the linker command line
/usr/lib/i386-linux-gnu/libgmp.so.10: could not read symbols: Invalid operation
这该怎么办呢?帮帮忙吧
啊哈,终于搞定了,要把./configure 操作改为 LDFLAGS="-lgmp" ./configure
然后再make,就搞定了。 展开
下面是显示的问题:
checking for flex... no
checking for lex... no
************************
flex not found
************************
之后进行make时,就显示如下:
zzy@ubuntu:~/Downloads/pbc-0.5.14$ make
make: *** No targets specified and no makefile found. Stop.
zzy@ubuntu:~/Downloads/pbc-0.5.14$
这是什么问题啊,难道是我GMP没装成功?
现在configure通过了,但是make又出问题了:
/usr/bin/ld: pbc_pbc-pbc.o: undefined reference to symbol '__gmpz_init'
/usr/bin/ld: note: '__gmpz_init' is defined in DSO /usr/lib/i386-linux-gnu/libgmp.so.10 so try adding it to the linker command line
/usr/lib/i386-linux-gnu/libgmp.so.10: could not read symbols: Invalid operation
这该怎么办呢?帮帮忙吧
啊哈,终于搞定了,要把./configure 操作改为 LDFLAGS="-lgmp" ./configure
然后再make,就搞定了。 展开
展开全部
通过源码安装linux软件的步骤,一般是到源码目录进行以下三步:
1. ./configure xxx 这是通过configure文件生成Makefile,期间,会有检查编译时所需要的依赖库是否满足。configure命令后面也可以添加选项来使能一些模块,具体选项可以通过./configure --help进行查看,如果不需要用到的模块,则可以去掉使能不编译,如果未添加选项,则全部使用默认值。
2. make
这是根据生成的Makefile进行编译
3. make install
根据Makefile中install这个TARGET进行安装。也可以通过make DESTDIR=XXX install指定安装目录
综上所述,你的情况是依赖库没满足,导致configure失败,没有生成Makefile,所以运行make命令会因为没有Makefile提示找不到TARGET。关键信息是这句:checking for flex no,checking for xxx表示检测的xxx依赖,解决办法就是先安装flex这个包,然后再重新运行configure,如果是ubuntu的话应该可以使用sudo apt-get install flex安装。另,flex安装后不一定能保证configure能通过,有可能还会遇到其他依赖库未满足的情况,请参照flex进行处理。
这是关于flex包的描述及下载地址:
Description: A tool for generating text-scanning programs
Upstream URL: http://flex.sourceforge.net
1. ./configure xxx 这是通过configure文件生成Makefile,期间,会有检查编译时所需要的依赖库是否满足。configure命令后面也可以添加选项来使能一些模块,具体选项可以通过./configure --help进行查看,如果不需要用到的模块,则可以去掉使能不编译,如果未添加选项,则全部使用默认值。
2. make
这是根据生成的Makefile进行编译
3. make install
根据Makefile中install这个TARGET进行安装。也可以通过make DESTDIR=XXX install指定安装目录
综上所述,你的情况是依赖库没满足,导致configure失败,没有生成Makefile,所以运行make命令会因为没有Makefile提示找不到TARGET。关键信息是这句:checking for flex no,checking for xxx表示检测的xxx依赖,解决办法就是先安装flex这个包,然后再重新运行configure,如果是ubuntu的话应该可以使用sudo apt-get install flex安装。另,flex安装后不一定能保证configure能通过,有可能还会遇到其他依赖库未满足的情况,请参照flex进行处理。
这是关于flex包的描述及下载地址:
Description: A tool for generating text-scanning programs
Upstream URL: http://flex.sourceforge.net
2013-08-07
展开全部
安装时通常需要注意文件夹里面的README&INSTALL文件,像上面flex没有找到,你就需要确认这个flex有多重要,因为光是./configure 通不过自然是没办法make的,你需要在configure后加入参数
可以尝试./configure --help 来帮助你是否可以加入flex进去,祝好!
/usr/lib/i386-linux-gnu/libgmp.so.10: could not read symbols: Invalid operation
这个意思是你的库虽然有但是用不了,应该是库链接的问题,你需要在其官网上查找,或者当前这个库的版本不对,要不你重新下个PBC的低版本试试!
可以尝试./configure --help 来帮助你是否可以加入flex进去,祝好!
/usr/lib/i386-linux-gnu/libgmp.so.10: could not read symbols: Invalid operation
这个意思是你的库虽然有但是用不了,应该是库链接的问题,你需要在其官网上查找,或者当前这个库的版本不对,要不你重新下个PBC的低版本试试!
更多追问追答
追问
我重新下了个低版本的,还是一样。。。
追答
那报错信息也是一样吗?!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询