Vim的使用(反汇编学习的开始)

  实验室的服务器上不好用可视化,所以需要使用vim来编写程序。

  vim还是不太好用的。

  1.在命令模式下输入 i 进入编辑模式

  2.在编辑模式下输入 esc 退出编辑模式

  3.怎么退出?在命令模式下输入 : 进入底部命令模式。 输入 wq 即可保存退出。

  4.怎么设置当前文件名? 如果不是例如vim test.cpp进入vim的话,而是直接vim进入vim,那么就不能正常退出,因为你当前编辑的内容没有一个文件名和文件路径来保存。此时可以输入w test.cpp,即可将当前内容保存到test.cpp当中去。当然加上路径名也是可以的。

  5.注意vim“卡死”,注意不是vim卡死,可能是不小心按到了Ctrl + s,这个时候按Ctrl+q就能恢复正常

 

  有了vim即可开始学习汇编与反汇编了。

  下面开始进行第一个项目:输出hello world。

  在vim当中编写一个1.cpp

 

  需要注意的一点就是,gcc是专门针对c语言的编译器,不能直接拿来编译c++程序。

  

  比如,我们再来编写一个真正的c++程序2.cpp:

 

   然后尝试用gcc编译它

 

 

   会报错。

  参考这篇博客:https://blog.csdn.net/wsx1234da/article/details/54730697

  因为gcc没办法自动链接c++所需要的库。这需要g++来完成。事实上,g++同样是用gcc来编译c++程序的,只是在链接的过程当中使用了g++来链接。

  临时插播一下:学习一下gcc的参数:gcc  -o 选项用来指定输出文件,如果不使用 -o 选项,那么将采用默认的输出文件。例如默认情况下,生成的可执行文件的名字默认为 a.out。如下图:

  

 

   这就是直接执行 gcc 1.cpp  这条命令所获得的结果 , 因为1.cpp当中保存的是c语言文件,那么gcc就能够运行成功,直接就能够出来可执行文件。但是因为没有指定可执行文件的名字,所以默认获得a.out。下面就执行一下:

  

 

 

 

   而gcc -o就是可以指定可执行文件名的命令。比如下面:

 

   就生成了可执行文件12345。

  gcc说明结束。

  然后继续说明gcc为什么不能链接c++可执行库。

  gcc -c 可以只编译文件,不执行文件。运行如下命令:

  

 

  然后就生成了2.cpp的编译之后的文件2.o

  

 

   然后gcc  2.o -o 2    ,尝试将2.o这个编译后的文件链接成可执行文件2

  出现了和运行gcc 2.cpp同样的结果。说明gcc将2.cpp这个文件链接到c++失败。

  

  此时我们可以运行 gcc 2.o -o 2 -lstdc++

 

   发现链接成功了,生成了可执行文件。

 

posted @ 2021-11-10 19:34  TheDa  阅读(237)  评论(0编辑  收藏  举报