• Linux make编译


    安装问题

    linux编译流程

    linux开发部分(vim、shell)

    linux系统默认安装工具yum 与 apt-get,一般来说著名的linux系统基本上分两大类:

    • RedHat系列:Redhat、Centos、Fedora等
    • Debian系列:Debian、Ubuntu等
    RedHat 系列
    • 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
    • 包管理工具 yum
    • 支持tar包
    Debian系列
    • 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”

    • 包管理工具 apt-get

    • cmake安装gflags
    cd gflags  // 查看当前目录中是否有 CMakeList.txt
    mkdir build && cd build   # 修改.h直接make可能未能编译进去,可以删除build目录重新编译
    cmake ..
    make # make -j 32 可提升编译速度
    make install 
    
    • 离线安装 tar.gz文件
    以sox为例
    tar -zxvf *** => ./cofigure => make =>  make install  => 下面可以找找到对应的执行文件 => ~/.bashrc 添加 export PATH=***/src:$PATH
    指定安装目录:make install DESTDIR=/*/*  或 ./cofigure --prefix=指定安装目录  指定目录下会生成 bin目录, 里面可执行
    

    linux常见编译流程

    makefile概念
    makefile有些类似于脚本,通过定义了一系列的规则,指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,并且它也可以执行操作系统的命令
    当编译安装源码包时,使用make编译,它会默认找当前目录下的makefile文件,依据makefile中的规则,执行编译安装
    makefile可以实现自动化编译,原理上来说,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率
    makefile成为了一种被广泛应用于在工程方面的编译方法
    
    1. ./configure预处理:
    这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制
    比如./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。
    同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。
    有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,
    你可以通过允许 ./configure –help 察看详细的说明帮助
    
    1. make
    等同于 make all 它是一个解释makefile中指令的命令工具
    执行make时,默认会去(当前文件夹下),找名为Makefile的文件
    根据Makefile文件来编译源代码,生成目标文件及可执行文件
    在每次使用make时,都会重新生成objects,新产生的object会覆盖旧的objects
    
    1. make clean:清除编译产生的可执行文件及目标文件(object file,*.o)

    2. make install:将程序安装至系统中。如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径

    3. make dist:产生发布软件包,即将可执行文件及相关文件打包成一个tar.gz格式的压缩文件,会在当前目录下生成XXX.tar.gz的文件

    4. make distcheck

    相当于make dist命令的进化版
    生成发布软件包并对其进行检查,以确定发布包的正确性
    它会自动把压缩包文件解开,然后执行configure命令,并且执行make,来确认编译不出现错误,并会在最后提示你软件包是否正确
    
    1. make distclean: 除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉。

    Linux开发部分

    • 创造软链接:ln -s dir target # 在windows中git bash的环境不好使
    • curl(commandLine URL)基于URL的文件传输,curl -O -L-O保持下载文件名不变,-L自动重定向URL对应的正确的网站
    • du -sh file # 检查对应文件夹大小
    • vim 格式转换
    :set ts=4   
    :set expandtab
    :%retab!
    
    :set ts=4
    :set noexpandtab
    :%retab!
    

    Linux 快捷操作方式

    • 命令行部分

    • history:查看历史命令 Ctrl+a:移到输入命令最前面 Ctrl+e:移到输入命令最后面
  • 相关阅读:
    软考高级系统架构 上午真题错题总结
    项目实战:抽取中央控制器 DispatcherServlet
    vue如何自定义路由菜单
    【数据结构----树】校招笔试题总结
    c++day1
    sgu 176 Flow construction (有汇源有上下界的最小流)
    DDD架构为什么应该首选六边形架构?
    项目01—基于nignx+keepalived双vip的负载均衡高可用Web集群
    百日完成国产数据库opengausss的开源任务--Linux中安装python3.6.X
    图形学-着色(Blinn-Phong模型)
  • 原文地址:https://www.cnblogs.com/lhx9527/p/16401185.html