第二天——配置环境

Hanabi_521 / 2023-07-30 / 原文

安装wsl扩展应用

连接了wsl后,在vscode里安装扩展应用不行。
试了很多种方法还是不行,最后在挂载位置下找了个地方重新创建了文件夹,再安装扩展就行了。

F12跳转用不了

①检查是否有安装C/C++ 扩展在wsl上

②我按F12出来计算器,而不是跳转vscode的定义,原因是windows上功能键我没禁用
按住Fn与Esc即可禁用

开始跟着教程去操作hello world

Step1:去除符号表
去除符号表去进行编译,真的减少了挺多字节。
gcc -s hello.c hello.out

问题1:符号是什么?

源代码中的函数、变量等被编译以后,都变成了符号
使用 nm 我们可以查看一个二进制程序中含有哪些符号。比如:nm hello.out

问题2:为什么此时能够去除符号表呢?

《程序员自我修养》中p128页提到:
对于可执行文件来说,符号表和字符串表是可选的。只有段名字字符串表为用户保存段名,所以必不可少。
教程文中也讲了:这些符号都存储在了 ELF 中,主要用于链接,对于可执行文件来说,符号并没有什么太大作用。

一些参考文章:https://www.jianshu.com/p/af6d0cefdfae
Step2:优化
编译时指令变为