在windows下,我们写C++程序一般会有如下几个步骤:
- 编写.cpp文件,代码都在里面;
- 可能还有一些.h文件之类的支持文件,这些文件一般都会放在一起,或者相对位置是固定的;
- 编译文件,链接文件,生成.exe文件
- 双击执行.exe文件(其实开发平台里的“运行”就是帮你双击了一下而已)
在Linux下这些步骤基本都是一样的,不同的是,Linux最后生成的文件不是.exe,而是.out
调用C++编译器的命令因编译器和操作系统的不同而不同,常用的编译器是GNU编译器和微软Visual Studio编译器。调用GNU编译器的默认命令是g++ --《primer》
gcc 是 c 语言的编译器, g++是C++的。
gcc 和 g++分别是GNU的C和C++的编译器。一般分成四步:
1. 预处理,生成.i的文件 [预处理器cpp]
2. 将预处理后的文件不转换成汇编语言,生成.s文件[编译器egcs]
3. 有汇编变为目标代码(机器代码)生成.o文件[汇编器as]
4. 连接目标代码,生成可执行程序 [链接器]
例子
编译
使用编译器将代码编译成二进制目标文件(object file)。
g++ -c file.cpp -o file.o
链接
将二进制目标文件链接起来生成可执行文件
g++ file1.o file2.o -o test.exe
执行
执行可执行文件(.exe这个后缀可以不加)
./test.exe
直接编译成可执行文件
g++ program.cpp -o program.exe
如果在Unix下可执行文件无后缀,在Windows下生成后缀为.exe的可执行文件。-o 是用来改名的参数,如果不写-o program,那么在Unix下生成的是a.out而在Windows下生成的是a.exe的可执行文件。(同样的,运行时.exe可以不加)
参数含义整理
-o: 修改生成文件的名字,如果不修改的话名字在Unix下面是a.out,Windows下面是a.exe的可执行文件名字,实在有点难听。用这个参数可以修改默认的名字。
-c: 不做第四步生成可执行文件,只生成.o的目标文件
https://blog.csdn.net/u013793399/article/details/51365311
https://www.cnblogs.com/viggo/articles/11284188.html