gcc/g++命令

参考:http://www.cnblogs.com/cryinstall/archive/2011/09/27/2280824.html

注意:gcc和g++是linux系统下的编程常用指令,C语言文件用gcc,cpp文件用g++。

1.预处理 

g++ -E filename.cpp > filename.i

功能:输出预处理后的文件,linux下以.i为后缀名。只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里 。

这一步主要做了这些事情:宏的替换,还有注释的消除,还有找到相关的库文件。用编辑器打开Test.i会发现有很多很多代码,你只需要看最后部分就会发现,预处理做了宏的替换,还有注释的消除,可以理解为无关代码的清除。下面是Test.i文件的最后部分,可以看见宏的替换和注释的消除。

2.将.i文件生成.s汇编语言文件 

g++ -S filename.cpp 

功能:会生成Test.s文件,.s文件表示是汇编文件,用编辑器打开就都是汇编指令。

g++ -s filename.cpp / g++ filename.cpp

功能:会生成a.out文件,.out文件并不是可执行文件的扩展名,可以用objdump -S a.out打开就都是汇编指令,a表示默认文件名。

3.生成.o文件  

g++ -c filename.cpp 

功能:会生成template.o文件,.o是GCC生成的目标文件,除非你是做编译器和连接器调试开发的,否则打开这种.o没有任何意义,二进制机器码一般人也读不了。

4.连接目标代码,生成可执行程序  

g++ Test.o -L /usr/lib/x86_64-linux-gnu/root5.34/cint/linclude/iostream

功能:将.o文件与所需的库文件链接整合形成可执行文件。-L 表示链接,这里我后面写的是绝对路径,相对各人电脑不同

这样生成的是默认文件名文件 a.out,也可以自己定义文件名在上面各个步骤中你可以用-o命令输出你自己想要的各种名字。

g++ Test.cpp -o test.exe,最后面的文件有多种命名形式,test,test.exe,test.out都可以,运行的时候:./filename 

注意:

.out 是 gcc 编译器的输出文件的默认扩展名,并不是可执行文件的扩展名。gcc 可以输出不能运行的文件,但默认还是 .out 。

.out文件就是扩展名为out的文件,它本身不代表任何信息。在Linux中判断文件是否是可执行文件,首先要看文件的属性是否是可执行的,它没有一个默认的扩展名表示此文件为可执行文件。为了方便,Linux中可执行文件一般都是没有扩展名的。 在使用gcc编程时,没有指定输入可执行文件名,默认生成可执行文件a.out文件。

 Linux 的可执行文件是基于权限确定的。而不是基于扩展名。

时间: 2024-10-07 23:11:21

gcc/g++命令的相关文章

gcc/g++ 命令行参数

这些常用的 gcc/g++ 命令行参数,你都知道么? 1. gcc -E source_file.c -E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码. 3. gcc -c source_file.c -c,只执行到编译,输出目标文件. 4. gcc (-E/S/c/) source_file.c -o output_filename -o, 指定输出文件名,可以配合以上三种标签使用. -o 参数可以被

gcc/g++命令认识

gcc & g++是gnu中最主要和最流行的c & c++编译器 . g++用来针对c++的处理命令,以.cpp为后缀,对于c语言后缀名一般为.c.这时候命令换做gcc即可. 下面以Test.cpp为例: 命令: g++ Test.cpp 功能:生成默认为a的可执行文件,这个过程已经包含了编译和链接过程. 再说下-o命令,-o命令表示输出的意思,gcc/g++命令是非常灵活的,你不指定输出的文件名的时候默认生成的是可执行文件. 你要输出Test的可执行程序的话可以用:g++ -o Test

gcc/g++ 命令的常用选项

gcc/g++ 命令的常用选项格式(选项 解释) -o FILE 指定输出文件名,在编译为目标代码时,这一选项不是必须的.如果FILE没有指定,缺省文件名是a.out. -c 只编译生成目标文件,不链接 -m486 针对 486 进行代码优化. -O0 不进行优化处理. -O 或 -O1 优化生成代码. -O2 进一步优化. -O3 比 -O2 更进一步优化,包括 inline 函数. -w 关闭所有警告,建议不要使用此项 -Wall 允许发出gcc能提供的所有有用的警告,也可以用-W(warn

gcc/g++基本命令

gcc & g++现在是gnu中最主要和最流行的c & c++编译器 . g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c.这时候命令换做gcc即可.其实是无关紧要的.其实编译器是根据gcc还是g++来确定是按照C标准还是C++标准编译链接.下面以Test.cpp为例: #include <iostream> static int t = 1; #define T 9 using namespace std; typedef int Status; int ma

gcc/g++基本命令简介

gcc & g++现在是gnu中最主要和最流行的c & c++编译器 .g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c.这时候命令换做gcc即可.其实是无关紧要的.其实编译器是根据gcc还是g++来确定是按照C标准还是C++标准编译链接. 下面以Test.cpp为例: 命令: g++ Test.cpp功能:生成默认为a.exe的文件,这个过程包含了编译和链接.再说下-o命令,-o命令表示输出的意思,gcc/g++命令是非常灵活的,你不指定输出的文件名的时候默认生成的是.e

(转)g++命令

gcc & g++现在是gnu中最主要和最流行的c & c++编译器 . g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c.这时候命令换做gcc即可.其实是无关紧要的. 其实编译器是根据gcc还是g++来确定是按照C标准还是C++标准编译链接. 下面以Test.cpp为例: 命令: g++ Test.cpp 功能:生成默认为a.exe的文件,这个过程包含了编译和链接. 再说下-o命令,-o命令表示输出的意思,gcc/g++命令是非常灵活的,你不指定输出的文件名的时候默认生成

windows 下 gcc/g++ 的安装(有图,一步一步)

下载 mingw 首先打开 www.mingw.org .(注意版本,建议64bit) www.mingw.org 直接点击右上方的 Download Installer 即可下载. 点击 Download Installer 进入下载页面 在打开的新页面会提示我们等待几秒秒后将开始下载.如果十多秒后也没有反应,可以点击进度条下方的direct link手动下载. 等待几秒后页面才会弹出下载界面 想下载其他的版本,可以点击右上角的 Downloads . 点击Downloads 然后在打开的下载

gcc/g++常用命令

1. gcc -E source_file.c-E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码. 3. gcc -c source_file.c-c,只执行到编译,输出目标文件. 4. gcc (-E/S/c/) source_file.c -o output_filename-o, 指定输出文件名,可以配合以上三种标签使用.-o 参数可以被省略.这种情况下编译器将使用以下默认名称输出:-E:预编译结果

GCC G++ 的区别

gcc 是c的编译器,g++是c++的编译器.cc一般是一个符号连接,指向gcc. CC一般是makefile里面的一个名字,具体是什么根据实际情况决定. gcc和g++都是GNU(组织)的一个编译器. 误区一:gcc只能编译c代码,g++只能编译c++代码 两者都可以,但是请注意: 1,后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序:后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的.C++的语法规则更加严谨一些. 2,编译阶