zoukankan      html  css  js  c++  java
  • gcc常用命令

    -E:仅作预处理,不进行编译、汇编和链接,头文件、宏等展开(.i文件)
    -S:预处理、编译;生成汇编代码(.s文件)
    -c:预处理、编译、汇编;生成目标文件(.o文件)
    -o:执行命令后生成文件的名称
    -g:嵌入调试信息,方便gdb调试
    -w:不生成任何警告
    -Wall:生成所有的警告
    -llib:链接 lib 库 (这里是小写 L ) 相当于 C++ #pragma comment(lib, “xxx.lib”)
    -Idir:增加 include 目录 (这里是大写 i ) 头文件路径
    -LDir:增加 lib 目录 (编译静态库和动态库)

    分解步骤:

    # 预处理,生成 hello.i 文件
    gcc -E hello.c -o hello.i
    
    # 编译,生成 hello.s 文件
    gcc –S hello.i –o hello.s
    
    # 链接,生成 hello.o 文件
    gcc –c hello.s –o hello.o
    
    # 生成可执行文件, 生成 hello 文件
    gcc hello.o –o hello
    

    一次生成可执行文件:

    gcc hello.c –o hello
    

    生成共享库:

    gcc –shared –fPIC fun.o –o libFun.so
    #此时生成 libFun.so 共享库
    

    shared:生成动态库格式。
    fPIC: 产生位置无关码,允许在任何地址加载相对地址,否则只能从指定地址加载,无法控制。

    使用共享库:

    gcc –Wall main.o –o main –L. -lFun
    #此时生成 Program1.o目标文件 
    

    –L.:增加库文件搜索目录(当前文件)
    -lFun:使用动态库,只需要 -l + 文件名即可。

  • 相关阅读:
    项目目标文档
    河北省民间组织管理系统项目分析
    《探索需求》读书笔记一
    “花儿日记”项目总结
    2015年秋季个人阅读计划
    场景调研
    “数组最大值求和”结对情况
    课堂改进意见
    《梦断代码》阅读笔记三
    linux io 学习笔记(03)---共享内存,信号灯,消息队列
  • 原文地址:https://www.cnblogs.com/chendeqiang/p/13092007.html
Copyright © 2011-2022 走看看