最近编译了几个软件,也想记录点心得,索性就写点东西。用ubuntu时,在没有编译过专业上用的软件之前,我一直以为所有的软件都可以从源里apt-get安装。后来专业上要用lblrtm,在ubuntu上装不上ifort,可能是我比较拙的原因,后来安装opensuse成功安装了。
要编译软件,首先得先装好编译工具,一般就是gcc之类的,以前看过一些gcc编程,可是没有坚持下来,但是思想还是有一点的。对于专业上的软件,像我用的那些都是老外为服务器编写的,用intel的编译器可能会顺利些,其它gfortran也不是不可能编译,就是会遇到这样那样的麻烦,为了简单方便能装intel的编译器,连系统都换掉了。
编译小软件一般比较简单,一般就是\
./configure\
make\
sudo makeinstall\
有脚本的就更简单,直接运行一下就成。
先说昨天编译的几个软件:
vpnclient:前一阵一直以为是我电脑的问题,老是编译不了,后来仔细看log才发现电脑上少了个库文件,网上搜了下,直接链接到lib就成,接着就按照小软件的编译方法弄好
recoll:这个软件我尝试着编译过好几次,可是都搞不定,说是缺少xapian-core支持,还有我./configure的时候有几个no,网上也没有找到比较好的教程。安装软件当然从库里安装最简单,opensuse比较好,可以从源里安装,还可以用package search安装一些不常用的软件,刚好搜到xapian-core就从源里安装了,但是xapian-omega没有,只好下源码自己来,编译时间很长不过幸运的是没有报错。既然已经编译了xapian-omega,于是又重新把xapian-core也编译了下,下面就是编译recoll的源码,一直很顺利,可是到最后链接时候出问题了,说找不到lpng库,google了一下什么都没有,这下难搞了。想法电脑上应该有些类库,于是按照编译vpnclient的方法,去链接了一个lpng库,再编译一切正常。运行recoll,程序是打不开xapian什么库,我肏,白折腾一晚上。软件用不了,那就删吧,先从源里删掉xapian,然后根据编译的路径删手动编译的库,期间还删掉以前用过但不常用的几个软件,清理文件夹的时候发现了recoll,和其它的文件混在一起,于是双击居然能运行,然后测试了搜索中文也行,太不可思议了。编译recoll到此结束。
lblrtm:这个软件是我去年初编译的,最初编译时候是刚开始做项目时候,当时什么都不懂,也不会linux,折腾了好多天都搞不定,去年linux用得比较熟悉了,又装了ifort,按照说明书改了makefile文件,注释掉报错的程序,后来编译成功了,接着在win下也编译成功,这部分内容也成了我毕业论文的一部分。从编译这个软件一点收获是,编译这样的大程序,要用intel的编译器,需要会点makefile。这些大程序一般都是为服务器应用的,可能和我们小PC机有点不一样。
sciatran:编译了sciatran后也想折腾出来了,后来发现不行,问别人是缺少库文件。这边很多资源都不共享,只好自己折腾,看了编译手册,需要自己编译两个库文件。于是动手,程序自带的makefile是针对gfortran,gmake以后一切正常,然后将编译好的库文件cp到lib,编译sciatran报错,一看原来程序运行是针对ifort的,难怪不行。现在唯一一条路就是统一编译器,要么全用gfortran,要么就用ifort。自己去改sciatran的makefile不现实,在网上求助大拿也没人理我,那只好去弄lapack的makefile了,找了几个例子胡填了下还真能运行,按手册cp,然后再用ifort编译sciatran就不出错了,很顺利的得到了编译好的文件。
写了这么多,也算是点收获吧,以后遇到这样的问题应该好解决了
PS:是上在cb上看到linux下安装vps,有人说apt-get安装软件飘过,然后被下在人狂骂说一桶水不满,半桶水晃。哈哈:)