用G++编译和运行C++程序
?
调用C++编译器的命令因编译器和操作系统的不同而不同,常用的编译器是GNU编译器和微软Visual Studio编译器。调用GNU编译器的默认命令是g++ ? --《primer》
gcc 和 g++分别是GNU的C和C++的编译器。一般分成四步:?
1. 预处理,生成.i的文件 [预处理器cpp]
2. 将预处理后的文件不转换成汇编语言,生成.s文件[编译器egcs]
3. 有汇编变为目标代码(机器代码)生成.o文件[汇编器as]
4. 连接目标代码,生成可执行程序 [链接器]?????????????????????????????
??????
下面给出一些例子,运行环境是win7+Cygwin。???????????????
编译
使用编译器将代码编译成二进制目标文件(object file)。
g++ -c file.cpp -o file.o
?
链接
将二进制目标文件链接起来生成可执行文件
g++ file1.o file2.o -o run.exe
?
执行
执行可执行文件
./run.exe
?
直接编译成可执行文件
g++ program.cpp -o program
如果在Unix下可执行文件无后缀,在Windows下生成后缀为.exe的可执行文件。-o 是用来改名的参数,如果不写-o program,那么在Unix下生成的是a.out而在Windows下生成的是a.exe的可执行文件。
?
参数含义整理
-o:? 修改生成文件的名字,如果不修改的话名字在Unix下面是a.out,Windows下面是a.exe的可执行文件名字,实在有点难听。用这个参数可以修改默认的名字。
-c:? 不做第四步生成可执行文件,只生成.o的目标文件
?
?
参考:
http://www.cnblogs.com/xiaoka/archive/2012/07/24/2607408.html
http://www.cppblog.com/SEMAN/archive/2005/11/30/1440.html