开发环境之浅谈Unix,linux,gcc编译器,头文件
2019-08-05 21:02 Maoey 阅读(330) 评论(0) 收藏 举报Unix 出生1971年左右,地点美国AT&T公司贝尔实验室。父亲:肯.汤姆逊和丹尼斯.里奇
它的特点有三高,三多
三高:高稳定性,高安全性,高可靠性
三多:多用户,多任务,支持多种处理器架构
其中有三大衍生版本:
1.System V:使用在银行,电信等要求稳定性高的行业
2.Berkley :使用在苹果MAC OS IOS
3.类Unix:Linux MINIX
Linux的开发者:linux .trovalds林纳斯.托瓦兹
linux的特点:多用户,多任务,良好的可移植性,良好的开放性,系统的稳定性,丰富的网络功能
这里linux指内核,一般使用了该内核的操作系统都叫做linux(发行版)。
常用于:手机,计算机,平板,路由器,超级计算机,大型计算机,游戏控制台等
其中良好的开放性是由于GNU(GNU NOT UNIX)组织,是一个开源组织职能:维护和发展类UNIX,维护linux内核
linux标志是一只企鹅,企鹅也是南极的代表动物,南极也是人类所共有的,隐喻linux为人类共有。
开源大家共享不代表你能 借用后就不在与他人共享你的成果,所以要在共享的基础上加上标记,说明这是来源于linux开源,不能声明做了原始工作,或声明由他人所做
而实现该功能的就是GAL公共通用许可证。
linux的另一个特点可移植性则是由posix标准来实现的,该标准通过统一接口,给出功能的名字,参数,返回值使得其具有很好的可移植性。
linux有多个版本号
早期未完成时为.0.1.。。。0.5.。。.09.。1.0
以及现在的A主版本号 B 此版本号 C补丁版本以上为旧计划D构建次数,E描述信息
linux具有很多衍生版本
大众的ubuntu
锐意的Fedora
自由的debian
老牌的Redhat
可靠的centOS
GCC编译器
支持众多语言
这里我们探究一下c语言是怎么变为可执行文件的
首先我们写出一段代码
通过预处理这里我们所写的c并非是标准的c所以这一步得到标准c
再通过编译得到指定cpu的汇编语言再通过汇编语言得到目标文件最后通过链接所有目标文件形成可执行文件
文件的后缀:
.h 头文件
.gsh 头文件的运行结果(运行后记得删除,不然会只执行这个文件)
.c 源文件
.i 预处理文件
.s 汇编文件
.o 目标文件
.a 静态库
.so 动态库
这里有很多参数
-S 汇编
-E 预处理
-O指定编译结果的名字
-c 编译生成目标文件
-wall 尽量生成更多的错误
-werror把警告当成错误
-l编译中加库
-g生成调试信息
-x指定编程语言
-i指定文件路径,
配置环境变量
先用vim ~/.bashrc
在里面配置(最后一行加上)
export C_PATH=$C_PATH:NEW_PATH
C_PATH原有的
NWE_PATH新添加的
source~/.bashrc重新加载
这里如果要是删除环境变量需要在~/.bashrc中删除后退出终端重新打开
上面讲到了头文件
这里有一个考点
include""和#include<>
这个问题也是老问题了
“”一般是我们自己编写的头文件,会优先在当前文件夹中找找不到了才会去系统配置的库环境变量以及我们配置的环境变量路径中找寻
<>则一般是系统自带的头文件,不会在当前下找只会在系统配置的库环境变量以及我们配置的环境变量路径中找寻
我们自己所写的头文件中会写什么呢
1.结构体,联合,枚举,以及可以是其他使用到的头文件
2.声明函数,全局变量
3.类型重定义
如果隐式声明有很大的隐患所以还是声明以防危险
预处理命令
include<>
define 定义宏
将标识符转换为字符串
合并标识符
ifndef可以用作头文件卫士
//未完待续。。将在下一篇中继续梳理
浙公网安备 33010602011771号