zoukankan      html  css  js  c++  java
  • Makefile 学习&binutils工具集,软件开发利器

    gcc -E 能有效的帮助我们解决与宏有关的编译错误:

    gcc -S能获得一个C源程序文件的汇编程序;

    gcc -v能获得系统头文件的路径

    生成依赖关系:

    gcc -M

    gcc -MM 生成不包含系统头文件的依赖关系

    指定链接库:

    gcc -L:告诉gcc可以从哪个目录查找库文件;

    gcc -l :用于告诉gcc在生成可执行程序时需要链接的库名;

    一、静态库生成步骤如下:
    步骤一:生成 str_out.o 目标文件
    gcc -c str_out.c
    注:不加 -o 则生成同名的 *.o 目标文件(str_out.o),加上 -o 可以指定生成任意名的目标文件。

    步骤二:生成 libstr_out.a 静态库,Linux规定静态库的命名规则一定是以 lib 开头且以 .a 结尾!
    ar -crs libstr_out.a str_out.o

    ar -cqs libstr_out.a str_out.o

    addr2line  地址 -f -e 可执行程序:用于得到程序指令地址所对应的函数,以及函数所在的源文件和行号;

     Linux存在两种库:

    静态库:后缀是.a

    动态库:后缀是.so

    静态库与动态库的区别:

    静态库:使用的库中的函数和数据会被拷贝到最终的可执行程序中

    动态库:动态的加载到内存中当用到时候

    静态库的生成:

    ar crs libc.a foo.o main.o

    静态库解压:


    ar x libc.a

    查看静态库里面包含的 内容:

    ar t libc.a 

    删除库中的目标文件:

    ar d libc.a foo.o

    nm:符号显示器

  • 相关阅读:

    链表
    队列
    稀疏数组
    SQL——流程控制
    SQL——存储过程与函数
    SOA
    MVC模式
    《一线架构师实践指南》--阅读笔记三
    《一线架构师实践指南》-阅读笔记二
  • 原文地址:https://www.cnblogs.com/wbtn6262/p/3787552.html
Copyright © 2011-2022 走看看