yum 安装gcc/g++
yum 软件管理工具
/etc/配置文件加入安装包的路径
(配置yum的仓库源)
mount /dev/cdrom /mnt 挂载
umount 卸载
配置 /ect/yum.repos.d/
vi test.repo
[ser]
name = test
basseurl = file:///mnt
gpgcheck = 0
yum repolist
查看挂载的包的个数
yum serch gcc
yum install gcc-c++.i686 gcc.i686 -y
vi /etc/vimrc配置gcc
which
找到命令的路劲
which ps
/bin/ps
命令由系统在路径中PATH中 依次寻找
PATH指向的路径
ps pwd标准目录下
系统命令和我们的程序
系统路径PATH echo $PATH
自己代码不在PATH中 需要全程
系统命令 系统先在路径中找系统命令
你的代码不在系统路劲中
编译过程
1.预编译(预处理) gcc -E x.c -o x.i 头文件(引入,展开) 替换宏 删除注释
2.编译 gcc -S a.i -o a.s(词法分析 语法分析 语义分析 优化后生成汇编代码)
3.汇编 gcc -c a.s -o a.o (Linux elf二进制文件/Windows PE)
4.链接 gcc -o a a.o(标准库链接的方法 符号确定地址)
nm 查看符号的地址
指令
指令
指令系统
汇编助记符
汇编语言不能跨平台
从高级语言到机器语言 依次翻译(编译过程的作用)
去那个主机翻译成那个主机适合的代码 实现了跨平台
机器语言 汇编语言 高级语言
010101 mov c语言
makefile
多个文件编译
gcc -c main.c max.c add.c
gcc -o main.o add.o max.o
gcc -o main main.c add.c max.c
all:main //生成可执行的文件的名字
GDB = -g //变量
main.:add.o main.o max.o //依赖文件
gcc -o main add.o main.o max.o //规则
add.o:add.c //依赖文件
gcc - c add.c ${GDB}//规则 没有依赖文件就执行规则生成
main.o:main.c
gcc - c main.c ${GDB}
max.o:max.c
gcc - c max.c ${GDB}
clean:
rm -rf *.o main
调用 makefile
make
调用makefile中的clean
make clean