计算机的构成:运算器,控制器,存储器,输入设备(i),输出设备(o)
Windows 系统上可执行程序格式是 PE
Linux 系统上可执行程序格式是 ELF
gcc主要处理c语言中的.c文件
c语言 .c文件如果想要直接去运行,首先需要将源文件变成可执行文件
这个过程可以细分为四个过程:预编译,编译、汇编、链接
gcc分步编译:
(1)预编译
gcc -E main.c -o main.i
(-o :out输出,输出想要得到的文件(自己命名),不加-o,生成一个默认的文件)
(2)编译
gcc -S main.i -o main.s
(3)汇编
gcc -c main.s -o main.o
(4)链接
gcc main.o -o main
一步编译
将上述四步合一进行编译
gcc main.c(不加-o系统默认生成可执行文件a.out,想自定义最终生成的可执行文件名,需加上-o)
gcc main.c -o main(-o后面跟自定义文件名)gcc -o main mian.c(也可以)
main 和a.out是一样的
编译后执行
1)./main执行
通过路径+文件名的方式可以启动一个程序,这里主要的目的就是让系统可以准确的找到文件
eg: ./main ./a.out
2)标准路径备份执行
此执行方法需要加上路径名,但我们可以发现系统命令执行时不需要加上路径名就可以执行,我们发现,pwd,ls可以直接执行,因为他们在标准路径下有备份,标准路径/user/bin,为此,我们可以将我们自己文件编译后的可执行文件放入/user/bin中,从而可以直接文件名执行
3)环境变量配置执行
echo 等价于printf
PATH 环境变量,记录可执行程序放在哪里
/use/sbin 管理员命令
/usr/bin 普通用户命令
编译链接过程
g++主要处理c++的.cpp文件
一、通过g++进行编译
g++ main.cpp
g++ main.cpp -o main
二、通过gcc进行编译
通常gcc是用来编译.c文件的,但它也可以用来编译.cpp文件,只是gcc默认链接c语言的库,没有链接c++的库,我们可以手动添加c++标准库(g++默认链接c++标准库)
-l :library,表示链接的库名称,注意:-l和库名中间不能加空格