zoukankan      html  css  js  c++  java
  • 编译软件的过程

    编译软件的过程与经验:
    1,./configure
    通过指定参数,来确认你想要安装的软件安装在哪里,加上哪些功能和去掉哪些功能(如果这一步报错,基本都是缺少依赖包;
    解决方法:使用yum去安装,一般来说,rhel做为一个成熟的linux操作系统,常见的底层依赖包都自带了,所以去安装下面这两个组,一般都会有你所需要的依赖包。
    # yum groupinstall "Development tools" -y
    # yum groupinstall "Desktop Platform Development" -y
    如果缺少依赖包在rhel的yum源里找不到,则上网下载第三方的软件,先编译第三方软件,再编译本软件
    2,make
    相当于是把你上一步定义好的,把这个软件给做出来(这一步一般很少出错,如果出错,问题都比较麻烦。可能是一些兼容性的问题等等,你可以尝试上网查询解决方法,如果查不到,只能换个环境或者换个软件版本或者换些编译参数重新编译)
    3, make install
    把做好的软件,安装到你第一步所指定的安装目录里(这一步几乎不会出错的)
    -----------------------------------------------------------------------------------------------------------------------
    讨论1:
    关于./configure参数选择的基本方法:
    ./configure --help 查看所有的编译参数
    第一个重要参数
    --prefix= 此参数指定安装目录(一般安装到/usr/local/或者/usr/local/软件名下)
    第二类重要参数:
    --enable-xxx 打开一个功能(默认是关闭的)
    --disable-xxx 关闭一个功能(默认是打开的)
    如果你是新手,你就不加任何功能参数,全部使用默认值。但又如果你怕少了功能造成以后需要重编,你可以加上所有的enable参数(但加得越多,错误概率也越大,因为调用的依赖会多,有可能会因为少包而报错)
    第三类参数:
    --with-xxx=DIR 指定一个目录,调用此目录的功能
    讨论2:
    假设一个软件abc,安装到/usr/local和安装到/usr/local/abc之间的区别?
    安装到/usr/local下:
    优点:此软件的命令一般会安装到/usr/local/bin或/usr/local/sbin等;这些路径都默认在$PATH里,所以安装的命令可以直接用,而不用使用绝对路径。
    库文件一般都会安装到/usr/local/lib下,所以把它加入ldconfig,以后所有安装在此目录的库文件都可以被找到。
    缺点:不方便删除,因为很多软件都安装到/usr/local下
    安装到/usr/local/abc下:
    优缺点与上面正好相反
    最终建议:小软件一般默认安装/usr/local/;大软件安装/usr/local/软件名/下
    讨论3:
    关于ldconfig,一个软件的库文件是有可能被其它软件所调用,那么其它软件能否找到你的库文件呢?
    一般来说,库文件安装到/lib,/lib64,/usr/lib/,/usr/lib64等,都可以被找得到.那么如果一个软件abc把库文件安装到/usr/local/abc/lib,别人想要找到,你就要把这个路径入到ldconfig可以找到的路径列表里面去。
    做法为:
    # vim /etc/ld.so.conf ----在这个主配置文件里加上一行,写上让别人要查找库文件的路径
    include ld.so.conf.d/*.conf ----或者在这里的任意.conf结尾的子配置文件里加上一行也可以
    /usr/local/abc/lib
    # ldconfig ----上面加入路径后,就使用此命令让其生效
  • 相关阅读:
    NHibernate之映射文件配置说明(转载3)
    NHibernate之映射文件配置说明(转载2)
    NHibernate之映射文件配置说明(转载1)
    NHibernate+NUnit (VS2012+SQL Server2008) (转)
    ASP.NET MVC全局观
    使用Razor来进行页面布局
    视图引擎输出字符串
    @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
    Html.Action和Html.RederAction来创建子视图
    从客户端检测到有潜在危险的Request.Form值
  • 原文地址:https://www.cnblogs.com/skyzy/p/9201321.html
Copyright © 2011-2022 走看看