第二天——配置环境
安装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:优化
编译时指令变为