返回信息流GCC全程GNU C Complier
其实老师给的GCC就是Dev用的,不过如果想在命令行下编译运行的话,就得按照老师说的配置环境变量了
将gcc文件夹copy到某目录,然后设置环境变量
1,PATH,添加 当前目录\gcc\mingw\bin;
2,新建C_INCLUDE_PATH=当前目录\gcc\mingw\include
3,新建LIBRARY_PATH =当前目录\gcc\mingw\lib
OK
注:1.将上面的“当前目录”替换为您的gcc所在的目录,比如放在C:根目录下,则相 应设置为才:C:\gcc\mingw\bin,C:\gcc\mingw\include,C:\gcc\mingw\lib
2.所有设置使用与windows系统
环境变量在 我的电脑 右键 属性 高级选项卡
添加的时候可以添加到系统,也可以添加到个人的环境变量,区别我想也是很明白的
在运行(可以用windows+R组合键快速打开)里输入cmd(或者command,但我一直搞不定在command下访问存在空格的目录,建议大家使用cmd)
在控制台里通过 转换盘符 x:还有 CD(或者CHDIR,大小写无关)转到源程序所在路径
假设源程序文件名为source.txt
输入gcc source.txt -o source.exe 命令就可以得到 source.exe这个可执行文件,当然,可以任意改变得到的可执行文件的文件名
如果没有转到源程序所在路径,通过输入
gcc 绝对路径/source.txt -o 绝对路径/source.exe
也可以得到想要的结果(如果不输入绝对路径或者相对路径,则默认为当前路径,即提示符显示的路径)
参考:
gcc 命令的常用选项
选项 解释
-ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色,
例如 asm 或 typeof 关键词。
-c 只编译并生成目标文件。
-DMACRO 以字符串“1”定义 MACRO 宏。
-DMACRO=DEFN 以字符串“DEFN”定义 MACRO 宏。
-E 只运行 C 预编译器。
-g 生成调试信息。GNU 调试器可利用该信息。
-IDIRECTORY 指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY 指定额外的函数库搜索路径DIRECTORY。
-lLIBRARY 连接时搜索指定的函数库LIBRARY。
-m486 针对 486 进行代码优化。
-o FILE 生成指定的输出文件。用在生成可执行文件时。
-O0 不进行优化处理。
-O 或 -O1 优化生成代码。
-O2 进一步优化。
-O3 比 -O2 更进一步优化,包括 inline 函数。
-shared 生成共享目标文件。通常用在建立共享库时。
-static 禁止使用共享连接。
-UMACRO 取消对 MACRO 宏的定义。
-w 不生成任何警告信息。
-Wall 生成所有警告信息。 //引自http://www.itcomputer.com.cn/system/Linux/200601/52526.html
1. gcc 支持的语言.
GCC 全称是GNU Compiler Collection ,包含一些主要编译器支持语言 C, C++, Objective- C, Java, Fortran, and Ada的编译.
2.gcc 命令选项
当执行gcc的时候通常会经过四个处理过程,preprocessing, compilation, assembly and linking .可以通过加不同的选项来中止到某个过程.
a.总的选项.
-c -S -E -o file -pipe -pass-exit-codes
-x language -v -### --help --target-help --version
编译器编译文件要经过四个阶段,如上所述.是按顺序来进行的.
编译器根据输入文件的后缀来决定进入哪个阶段的处理过程:
file.c c 文件要经过豫处理.
file.i c源文件不必进行豫处理。
file.ii c++源文件不必进行豫处理。
file.h c/c++豫编译头文件.
file.cc
file.cp
file.cxx
file.cpp
file.CPP
file.c++
file.C c++源文件要经过豫处理.
file.hh
file.H c++头文件转换为豫处理头文件.
file.s
Assembler code.
file.S
Assembler code which must be preprocessed
-x language =========选项是为了指定语言告诉gcc 文件是什么语言的,
不必要缺省的后缀识别.
languge 可以是:
c c-header cpp-output
c++ c++-header c++-cpp-output
objective-c objective-c-header objc-cpp-output
assembler assembler-with-cpp
ada
f77 f77-cpp-input ratfor
java
treelang
-x none 用后缀识别,关闭语言识别.
-c 只是编译不连接,生成的都是目标文件. .c, .i, .s ==> .o
-S 只是编译不进行汇编,生成汇编代码. .c, .i ==>.s
-E 只是进行豫编译,不做其他处理.
-o file 把输出文件输出到file里.
-v 打印出编译器内部编译的各个过程的命令行信息.和编译器的版本.
-### 同上,但是不真正执行命令.
-pipe 编译器编译时各个阶段的信息是保存到临时文件的,如果你不想
用临时文件的话可以通过管道也行.这个命令选项就用上了.不过有些系统不支持.
还有其它的选项 如-On(n=1,2,3) -arch=pentium4 这些用于优化的
-g用于调试的
还有prof支持的 可以判断程序的运行效率 //引自http://blog.csdn.net/Lalphbet/archive/2004/10/25/150724.aspx
这是一条镜像帖。来源:北邮人论坛 / scs / #17058同步于 2007/1/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SCS机器人发帖
搞定GCC的方法[原创]
wuunicorn
2007/1/7镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。