gcc 参数总结

如果是 c++,直接将 gcc 改为 g++ 即可。

1. gcc 编译流程

  • 预处理,Pre-Processing:gcc -E test.c -o test.i //.i文件
  • 编译,Compiling:gcc -S test.i -o test.s //.s文件
  • 汇编,Assembling:gcc -c test.s -o test.o //.o文件
  • 链接,Linking:gcc test.o -o test //bin文件

2. 编译

  • gcc -c test.c //.o文件,汇编

    • -c:只编译,不链接,生成 .o 文件;
    $ gcc -Wall -c file1.c file2.c file3.c

    不用指定 .o 文件名,会默认生成 file1.o, file2.o, file3.o

  • gcc -o test test.c //bin可执行文件
  • gcc test.c //a.out可执行文件

3. 常用参数

GCC/G++编译参数含义

  • -l 参数和-L参数

    • l 参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?

      就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名(gcc xxx.c -lm( 动态数学库))

    • -D

      • -DMACRO 以字符串“1”定义 MACRO 宏。#define macro
      • -DMACRO=DEFN 以字符串“DEFN”定义 MACRO 宏。
        • #define MACRO DEFN

gcc/g++ 的参数总结(二)的更多相关文章

  1. gcc/g++命令参数笔记

    1. gcc -E source_file.c -E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码. 3. ...

  2. gcc/g++命令参数

    在windows环境下,我们运行一程序,只需要在VS中点击运行按键即可,VS帮我们做完了程序的预处理.编译.汇编.链接阶段 但是在linux环境下,我们只能借助gcc/g++完成这一系列的操作 -o参 ...

  3. Linux 之 编译器 gcc/g++参数详解

    2016年12月9日16:48:53 ----------------------------- 内容目录: [介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++ ...

  4. gcc g++ 参数介绍

    C和C++ 编译器是集成的.他们都要用四个步骤中的一个或多个处理输入文件: 预处理 (preprocessing),编译(compilation),汇编(assembly)和连接(linking).源 ...

  5. scons用户指南翻译(附gcc/g++参数详解)

    scons用户指南 翻译 http://blog.csdn.net/andyelvis/article/category/948141 官网文档 http://www.scons.org/docume ...

  6. Clang比 gcc/g++更人性化代码出错提示的C/C++编译器

    编译器方面的几个命令 gcc/g++ 一. 常用编译命令选项 常用用法 gcc -Wall test.c -o test gcc编译过程 .c ->(-E)-> .i[中间文件] -> ...

  7. [转]Linux下用gcc/g++生成静态库和动态库(Z)

    Linux下用gcc/g++生成静态库和动态库(Z) 2012-07-24 16:45:10|  分类: linux |  标签:链接库  linux  g++  gcc  |举报|字号 订阅     ...

  8. gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解

    摘自http://blog.csdn.net/elfprincexu/article/details/45043971 gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解 C和C+ ...

  9. Linux gcc/g++下GDB调试及其调试脚本的使用

    GDB调试及其调试脚本的使用返回脚本百事通一.GDB调试 1.1. GDB 概述 GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB ...

随机推荐

  1. html中radio、checkbox选中状态研究(静下心来看,静下心来总结)

    html中radio.checkbox选中状态研究(静下心来看,静下心来总结) 一.总结 1.单选框的如果有多个checked 会以最后一个为准 2.js动态添加checked属性:不行:通过 $(& ...

  2. 13、虚拟驱动vivi.c注册过程分析及怎么写V4L2驱动及启动过程

    UVC设备也是一个usb设备,在uvc_driver.c中的init函数会调用usb_register注册,根据id_table发送可支持的设备后调用probe函数,其会去uvc_register_c ...

  3. vim修复,telnet安装启动,linux更新软件源

     vim修复: 修复前提,你到UBUNTU能够联网.否则仅仅能卸载,不能安装 1.sudo apt-get remove vim-common 2.sudo apt-get install vim ...

  4. phpstorm 2018本地激活

    这是简书上找到的,害怕以后找不到,记录一下网址为https://www.jianshu.com/p/133af2e4fe3f

  5. php 修改文件内容,替换指定内容

    $f='./test.txt'; file_put_contents($f,str_replace('{{modulename}}','Hospital',file_get_contents($f)) ...

  6. Linux下安装Oracle11G(虚拟机)

    1.内存设置为2G及以上2.设置swap: (1)root登录 (2)建立swap文件,如在/tmp下建立swapfree作为交换文件. # cd /tmp #dd if=/dev/zero of=s ...

  7. 【42.38%】【BZOJ 3196】二逼平衡树

    Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1363 Solved: 579 [Submit][Status][Discuss] Descripti ...

  8. 清楚arp

    转载:http://wscyza.blog.51cto.com/898495/728717/ linux系统下清空arp 缓存(清空arp表)方法   命令红色字体标记   系统初始arp环境 [ro ...

  9. PXC安装

    安装软件依赖包yum install -y  perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes socat nc    openssl-devel l ...

  10. Java高级个人笔记(RandomStringUtils工具类)

    //产生5位长度的随机字符串,中文环境下是乱码 RandomStringUtils.random(5); //使用指定的字符生成5位长度的随机字符串 RandomStringUtils.random( ...