mac下的gcc如何使用。。

我装的是xcode4.2.1.我搜索/usr/bin/gcc,找到了llvm-gcc-4.2llvm-g++-4.2等好几个东西,我双击,提示没用合适的应用程序打开。。我... 我装的是xcode4.2.1.
我搜索/usr/bin/gcc,找到了llvm-gcc-4.2 llvm-g++-4.2等好几个东西,我双击,提示没用合适的应用程序打开。。我找到的是gcc编译器吗?如果是,怎么用?如果不是,怎么找,找到怎么用?
展开
 我来答
miracl2011
2012-02-05
知道答主
回答量:15
采纳率:0%
帮助的人:9.9万
展开全部
gcc常用命令行
gcc/g++在执行编译工作的时候,总共需要以下几步:
1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]
3.由汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4.连接目标代码,生成可执行程序[链接器ld]
/**********GCC能够处理的后缀有:**********/
a. *.c *.C (C语言)
b. *.cxx *.cc (C++语言)
c. *.m (面向对象的C)
d. *.i (预处理后的C语言源文件)
e. *.ii (预处理后的C++语言源文件)
f. *.s *.S (汇编语言)
h. *.h (头文件)
/**********目标文件可以是:**********/
a. *.o 编译连接后的目标文件
b. *.a 库文件

-o FILE 指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE没有指定,缺省文件名是a.out.
-c 只编译不链接
-IDIRNAME 将DIRNAME加入到头文件的搜索目录列表中
-LDIRNAME 将DIRNAME加入到库文件的搜索目录列表中,缺省情况下gcc 只链接共享库
-lFOO 链接名为libFOO的函数库
-O 优化编译过的代码
-ON 指定代码优化的级别为N,o<=N<=3
-v 显示在编译过程的每一步中用到的命令
-x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,
如果你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,
除非到了下一个参数的使用。例 gcc -x c hello.pig
-x none filename 关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型
   例:gcc -x c hello.pig -x none hello2.c
-c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件
   例:gcc -c hello.c 他将生成.o的obj文件

-o 制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果你和我有同感,改掉它!
  例子用法
  gcc -o hello.exe hello.c (哦,windows用习惯了)
  gcc -o hello.asm -S hello.c

-Idir 在你是用#include”file”的时候,gcc/g++会先在当前目录查找你所制定的头文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,
他回先在你所制定的目录查找,然后再按常规的顺序去找.对#include,gcc/g++会到-I制定的目录查找,查找不到,然后将到系统的缺省的头文件目录查找
-I- 就是取消前一个参数的功能,所以一般在-Idir之后使用
-idirafter dir 在-I的目录里面查找失败,讲到这个目录里面查找.
-iprefix prefix
-iwithprefix dir 一般一起使用,当-I的目录查找失败,会到prefix+dir下查找
-nostdinc 使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头文件的位置
-nostdin C++ 规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创libg++库使用
-C 在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很方便的
-M 生成文件关联的信息。包含目标文件所依赖的所有源代码你可以用gcc -M hello.c来测试一下。
-MM 和上面的那个一样,但是它将忽略由#include造成的依赖关系。
-MD 和-M相同,但是输出将导入到.d的文件里面
-MMD 和-MM相同,但是输出将导入到.d的文件里面
-Wa,option 此选项传递option给汇编程序;如果option中间有逗号,就将option分成多个选项,然后传递给会汇编程序
-Wl.option 此选项传递option给连接程序;如果option中间有逗号,就将option分成多个选项,然后传递给会连接程序.
-llibrary 制定编译的时候使用的库
   例子用法 gcc -lcurses hello.c 使用curses库编译程序
-Ldir 制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然编译器将只在标准库的目录找。这个dir就是目录的名称。
-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 
-g 只是编译器,在编译的时候,产生调试信息。
-gstabs 此选项以stabs格式声称调试信息,但是不包括gdb调试信息.
-gstabs+ 此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息.
-ggdb 此选项将尽可能的生成gdb的可以使用的调试信息.
-static 此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连接库,就可以运行.
-share 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统有动态库.
-traditional 试图让编译器支持传统的C语言特性
追问
饿,这么多命令。。。我最大的不理解是,在哪里输入这些命令。。求问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
麦保(深圳)科技有限公司_
2023-03-28 广告
cleanmymac是我必装的mac端清理软件,界面简洁好看,完美适配mac系统,文件清理的速度、精度都比较优秀,还是比较不错的呢。cleanmymac作为一款第三方清洁应用程序,具有专业完整的清理功能,包括释放内存、一键智能扫描垃圾和缓存... 点击进入详情页
本回答由麦保(深圳)科技有限公司_提供
隋龙飞
2012-02-04 · TA获得超过511个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:250万
展开全部
例如你写了一个叫test.c的代码,使用方法是gcc test.c就可以了
追问
在哪输gcc test.c?我有看到资料有提到命令行之类的。。
是双击LLVM-gcc-4.2吗,我试过,发现打不开。
还是在终端之类的地方打开?
追答
是的,是终端。如果是学开发的话,将来很多东西都要在终端下面完成的。如果你有时间的话,你可以学一下unix shell。不过shell和shell还是有一些不一样的。Mac OS继承与FreeBSD,你可以找一些这方面的书来看。我当时是看的《鸟哥的Linux私房菜--基础篇》,这本书是讲linux,不过跟MacOS差别不是很大,大多数的shell以及系统还是比较类似的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
颜之天使长
2017-11-24 · TA获得超过599个赞
知道小有建树答主
回答量:157
采纳率:50%
帮助的人:70万
展开全部
xcode附带的gcc是llvm版,功能不全,要自己装个gnu版gcc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式