gcc编译(学习object c)

本文通过一个简单的C语言编程错误引入,讨论了编程时潜意识导致的问题,并强调了程序员保持严谨的重要性。同时介绍了GCC编译器的部分常用选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  很多天没有用c了,由于ios的课程基础便是c的知识。

  于是我不看资料,自己先写了一个C的helloworld,完了编译,突然发现编译中断。

   仔细检查发现,stdio.h我写成了studio.h。

   操蛋的习惯啊,人总是有一种习惯,就是想当然。

   在基础上出了这个问题,不得不深思。还有很多时候都会出现这种想当然的情况,比如我经常遇见的,在贴吧里面,你会发现有一个帖子:偷看本主公洗澡的快来啊!

   很多时候你会想当然的看错成偷看本公主洗澡,当然我说的是男同胞们。

   说重一点是幻听幻视,就是你潜意识想看见一样,然后突然很相似的一样事物出现,然后你很大几率会看成想看的。

   还有一种就是,对自己造成很大影响的,比如初恋,类似初恋的出现,大多数人都会心动,然后出击。这就是大脑的潜意识保护自己或者自以为是的感觉产生的意识,或者说是对自己不熟悉事物的陌生感的一种惧怕吧。

   这些习惯多伴随潜意识而生,虽然基本的潜意识都差不多,但由于生活不同,还有很多个时候会出现那种感觉。

   所以以后要多留意这些造成失误的潜意识,凡事三思而后行。

   程序员要的严谨,就是这些,你做到了么?

   以前不懂程序员的严谨到底是什么样的感觉,现在看来,那就是理性的思考,并养成应对潜意识的习惯。

   今天就记录一下,gcc的常用语法吧:


用法:gcc [选项] 文件...
选项:
  -pass-exit-codes         在某一阶段退出时返回最高的错误码
  --help                   显示此帮助说明
  --target-help            显示目标机器特定的命令行选项 --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]

显示特定类型的命令行选项
     (使用‘-v --help’显示子进程的命令行参数)
  --version                显示编译器版本信息
  -dumpspecs               显示所有内建 spec 字符串
  -dumpversion             显示编译器的版本号
  -dumpmachine             显示编译器的目标处理器
  -print-search-dirs       显示编译器的搜索路径
  -print-libgcc-file-name  显示编译器伴随库的名称
  -print-file-name=<库>    显示 <库> 的完整路径
  -print-prog-name=<程序>  显示编译器组件 <程序> 的完整路径
  -print-multi-directory   显示不同版本 libgcc 的根目录
  -print-multi-lib         显示命令行选项和多个版本库搜索路径间的映射
  -print-multi-os-directory 显示操作系统库的相对路径
  -print-sysroot           显示目标库目录
  -print-sysroot-headers-suffix 显示用于寻找头文件的 sysroot 后缀
  -Wa,<选项>               将逗号分隔的 <选项> 传递给汇编器
  -Wp,<选项>               将逗号分隔的 <选项> 传递给预处理器
  -Wl,<选项>               将逗号分隔的 <选项> 传递给链接器
  -Xassembler <参数>       将 <参数> 传递给汇编器
  -Xpreprocessor <参数>    将 <参数> 传递给预处理器
  -Xlinker <参数>          将 <参数> 传递给链接器
  -save-temps              不删除中间文件
  -save-temps=<arg>        不删除中间文件
  -no-canonical-prefixes   生成其他 gcc 组件的相对路径时不生成规范化的
                           前缀
  -pipe                    使用管道代替临时文件
  -time                    为每个子进程计时
  -specs=<文件>            用 <文件> 的内容覆盖内建的 specs 文件
  -std=<标准>              指定输入源文件遵循的标准
  --sysroot=<目录>         将 <目录> 作为头文件和库文件的根目录
  -B <目录>                将 <目录> 添加到编译器的搜索路径中
  -v                       显示编译器调用的程序
  -###                     与 -v 类似,但选项被引号括住,并且不执行命令
  -E                       仅作预处理,不进行编译、汇编和链接
  -S                       编译到汇编语言,不进行汇编和链接
  -c                       编译、汇编到目标代码,不进行链接
  -o <文件>                输出到 <文件>
  -x <语言>                指定其后输入文件的语言
                           允许的语言包括:c c++ assembler none
                           ‘none’意味着恢复默认行为,即根据文件的扩展名猜测
                           源文件的语言


以 -g、-f、-m、-O、-W 或 --param 开头的选项将由 gcc 自动传递给其调用的
 不同子进程。若要向这些进程传递其他选项,必须使用 -W<字母> 选项。


报告程序缺陷的步骤请参见:
<file:///usr/share/doc/gcc-4.6/README.Bugs>.

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值