一、gcc和arm-linux-gcc的常用选项

  • 常用选型

    • -v 查看gcc编译器的版本,显示gcc执行时的详细过程

    • -o Place the output into 指定输出文件名为file,这个名称不能跟源文件名同名

    • -E Preprocess only; do not compile, assemble or link

      ​ 只预处理,不会编译、汇编、链接

    • -S Compile only; do not assemble or link

      ​ 只编译,不会汇编、链接

    • -c Compile and assemble, but do not link

      ​ 编译和汇编,不会链接

  • 举例

    //举例一:
    gcc hell.c /* 输出一个a.out,然后./a.out来执行该应用程序 */
    gcc -o hello hello.c /* 输出hello,然后./hello来执行该应用程序(推荐使用这种方式) */ //举例二:
    gcc -E -o hello.i hello.c /* 对hello.c文件进行预处理,获得hello.i文件 */
    gcc -S -o hello.s hello.i /* 对hello.i文件进行编译,获得hello.s汇编文件 */
    gcc -c -o hello.o hello.s /* 对hello.s进行汇编,获得hello.o(OBJ文件)目标文件 */
    gcc -o hello hello.o /* 对hello.o进行链接,获得 hello可执行文件*/
  • 总结

    1)输入文件的后缀名和选项共同决定gcc到底执行那些操作。

    2)在编译过程中,除非使用了-E、-S、-c选项(或者编译出错阻止了完整的编译过程),否则最后的步骤都是链接。

二、从.c文件到可执行文件过程

最新文章

  1. unable to boot the simulator,无法启动模拟器已解决
  2. github入门到上传本地项目
  3. Debugging into .NET Core源代码的两种方式
  4. android 第三方登录 --- QQ
  5. STL之序列容器vector
  6. MM常用BADI
  7. Oracle日期函数和循环总结
  8. ubuntu14.04 us sources.list
  9. ClassLoad的加载过程及分析
  10. js控制手机号码中间用星号代替
  11. Java 截取反斜杠--java使用split拆分特殊字符
  12. .net 调用Oracle.Data.Access 组件提供的用于批量操作的方法—获取数据库表结构方法和跟参数赋值方法
  13. HTML5+CSS3项目总结
  14. 製程能力介紹(SPC introduction) ─ 製程能力改善及評估
  15. CSS-DOM介绍
  16. android webview点击返回键回到上一个html
  17. scrapy_items
  18. Lua实现Map
  19. java web service 写入图片到web/img/
  20. C++定义自己的异常

热门文章

  1. java Maven项目右键没有maven菜单项的解决方案!
  2. Tomcat启动阻塞变慢
  3. 高精度定时器实现 z
  4. Docker_2 常用命令
  5. Java文件操作工具类
  6. windows server 2003安装Oracle webtier 32位因环境变量原因报错
  7. 【深入理解JAVA虚拟机】第三部分.虚拟机执行子系统.4.类加载及执行子系统的案例与实战
  8. January 16 2017 Week 3 Monday
  9. 【Asp.Net MVC】asp.net mvc Model验证总结及常用正则表达式
  10. azkaban部署