02 2020 档案
摘要:四个阶段分别是: 预处理,编译,组装,链接 1. 预处理将头文件展开,将宏定义替换,生成符号文件.S 2. 编译则包含了词法检查,语法检查,权限检查, 代码优化 3. 组装:将编译后的代码组装成机器码, 形成位置无关的目标文件 .o 4. 链接将多个位置无关的目标文件合并成可执行文件 可见组装才是平
阅读全文
摘要:符号表是编译期产生的一个hash列表,随着可执行文件在一起 示例程序 符号表包括了变量和函数的信息,以及调试信息,可以通过nm 命令查看符号表 可见这里还包含了位置 , 变量和函数都能看到。 还有debug信息 通过readelf S a.out 可以查看所有符号表头信息 nm 和readelf 还
阅读全文
摘要:前言 想象一种情况,你在分支上开发多个功能,现在要将第一个功能推到另一个分支上 例如上面的,先基于master创建了分支dev, 然后提交了3个commit, 如何只将提交3 合到master 上去呢? 这就用到git的cheery pick 1. 先创建一个临时分支tmp,基于master 2.
阅读全文
摘要:前言 由于rustup官方服务器在国外 如果直接按照rust官网的安装方式安装非常容易失败,即使不失败也非常非常慢 如果用国内的镜像则可以分分钟就搞定 官方安装方法 文档: https://www.rust-lang.org/tools/install curl --proto '=https' -
阅读全文
摘要:c/c++ enum 介绍 说起c/c++ 的enum,比起python 真的是方便简洁 enum的元素对应的int 默认从0 开始依次增加, 除非手动指定起始值。 enum 内的元素是全局的,意味着在其它地方直接使用 ; C++ 11 引入 enum class, 这样里面的元素不再是全局了 这样
阅读全文

浙公网安备 33010602011771号