• gcc基础


    gcc

    可以编译C、C++、Object C等语言编写的程序。

    gcc的语法结构

    gcc的基本语法

    gcc [options] [filenames]

    [options] 编译器所需要的编译选项

    常用编译选项

    -c:只是编译不链接,生成目标文件.o,制作库文件时,中间需生成.o文件

    -S:只编译不汇编,生成汇编代码

    -E:只进行预编译,不做其他处理

    -g:调试信息

    -o file:指定输出文件

    -v:查看当前gcc的版本

    -std=name:指定C语言的 标准(如c99等,标准越高要求越高,默认肯恩格式C89,C90)

    -l dir:在头文件的搜索路径列表中添加dir目录

    范例:

    gcc -o obj/hello_word.o  -c hello_word.c

    obj/hello_word.o:目标文件

    gcc -o bin/hello_word2 obj/hello_world.o

    bin/hello_word2:可执行文件

    gcc -std=c99 -o obj/hello_word.o  -c hello_word.c

    -std=c99:按照c99标准编译,必须放在-o之前

    优化选项

    -O:减少代码的长度和执行时间,效果等价于-O1,其中包括包含线程跳转和延迟推展

    -O2:完成-O1内容外多来点,如处理器指令调度。常用选项。

    -O3:.......

    范例:

    有个大循环optimize.c,通过不同优化编译选项,查看执行时间差别。

    (time ./bin/optimize   //查看执行时间)

    gcc -o bin/optimize src/optimize.c //生成可执行文件,查看可执行时间为27s

    gcc -O -o bin/optimize src/optimize.c //生成可执行文件,查看可执行时间为6s

    gcc -O2 -o bin/optimize src/optimize.c //生成可执行文件,查看可执行时间为6s

    gcc -O3 -o bin/optimize src/optimize.c //生成可执行文件,查看可执行时间为6s

     

    警告和出错选项

    -ansi:

    -pedantic:

    -pedantic-error:

    -W:关闭告警

    -Wall:允许发出gcc所提供的所有有用的报警信息。开发时候经常用到

    范例:

    hello_world.c删除return 0

    gcc -Wall -o bin/hello_world src/hello_word.c

    warning:control reaches end of non-void funtion 该文件有返回类型(void为无返回,non-void有返回),所以必须有return

    :gcc -o bin/hello_world src/hello_word.c 并不会报错,语法没有问题(' } '作为返回),只是语法不健壮,跨平台有可能会出现问题

    选项制作库文件选项

    -L dir:

    -static:

    -lname:

    -shared:

  • 相关阅读:
    CDN内容交付网络学习
    mysql高可用架构了解
    coredump了解
    NTP协议了解
    mysql主从复制学习
    Go中json的marshal解析
    go基础系列~基础环境相关
    leetcode(c++)(背包问题)
    arcsin是反正弦。
    设计模式的六大原则。简称:SOLID
  • 原文地址:https://www.cnblogs.com/cevinchen/p/10461254.html
Copyright © 2020-2023  润新知