Linux 开发工具与众所周知
在线OJ的阿川 2024-06-10 15:07:10 阅读 95
个人主页:在线OJ的阿川
大佬的支持和鼓励,将是我成长路上最大的动力
阿川水平有限,如有错误,欢迎大佬指正
上篇博文
Linux权限
Linux生态与工具
目录
超级权限编译器引入背景概括 发行版本自动化构建工具拓展学习
超级权限
在Linux当中有些权限 需要root账户,但普通用户可以短暂的使用root账户所拥有的权限,需要使用sudo指令
使用sudo指令,需要将该用户添加至信任白名单中
信任白名单
编译器
编译器——gcc/g++使用
gcc主要编译点c文件
g++ 可以编译点c文件,也可以编译点cpp文件,但 建议cpp
经过编译器处理之后,会生成可执行程序
引入背景
1.预处理
去注释头文件展开宏替换
注意:预处理阶段能进行头文件展开
则说明 头文件中的代码已经拷贝在了操作系统中
其实无论Visual Studio Installer、Linux、Windows等等这些平台
之所以能够运行编译型语言,是因为在安装该编译型语言时,就已经安装了相应的开发包,开发包中有所对应的头文件和库文件。
头文件(.h)提供方法的声明,库文件 提供方法的实现,加自己写的代码就等于自己的软件.
库其实就是把源文件(.c)经过一定的翻译,然后打包,只给你提供一个文件即可,不用给你提供太多的源文件,可以达到隐藏源文件的目的.
库分为两种类型
动态库
在执行代码的过程中,若遇见无法执行的,则跳转到库中执行,执行完之后,回到 自己的代码中向下继续执行,所有访问者都能调用该库,故动态库又称 共享库。
静态库:
执行代码前,先将 库中的文件拷贝到本地可执行程序中,不存在说执行代码中遇见无法执行的去跳转到库中去寻找。该库称为静态库。 静态库需要先安装:
动态库和静态库区别:
动态库因为是共享库,有效的节省资源,但动态库一旦缺失,导致各个程序都无法运行
静态库 不依赖库,程序可以独立运行,但体积大比较消耗资源
条件编译
根据不同的编译条件,裁剪代码
拓展
2.编译
生成可重定位目标二进制文件,简称目标文件
3.汇编
生成机器可识别代码 生成可执行二进制程序
可执行程序形成的时候,不是无序的二进制构成,而有自己的格式–ELF格式
4.链接
将可重定位目标二进制文件和标准库链接形成可执行程序 点o文件和库如何连接 动态链接
与动态库进行连接(默认)静态链接
将静态库的文件拷贝到本地,进行连接
实际中 静态和动态链接是混合的。 查看链接方式
概括
发行版本
可执行程序发行版本
debug 可以被追踪调试 其中添加了的debug信息
release(默认) 不可被追踪调试
自动化构建工具
自动化构建和清理
make 自动化的指令makefile or Makefile 当前目录下的文件 需要先创建一个makefile文件,在makefile文件中添加一些指令,从而用 make指令进行自动化构建和清理
之后就可以在控制台中输入make自动化指令了
修改Tab键的默认设置
set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab
拓展学习
若对自己要求高点,想要进行拓展学习,这里推荐两本书
程序员的自我修养
关于编译的深入讲解
深入理解计算机系统
不太建议新手小白去看
好的,到此为止啦,祝您变得更强
道阻且长 行则将至 |
---|
个人主页:在线OJ的阿川
大佬的支持和鼓励,将是我成长路上最大的动力
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。