Day1-配置环境、GCC、静态链库

day-1

1.配置环境

  • Linux虚拟机(已完成,做操作系统作业就完成了)

    • 安装VMware Tools,可以在主机和虚拟机之间拖拽文件(相当好使)。
  • XSHELL(用于远程登录Linux系统)、XFTP(用于和远程Linux机传输文件)

    • VMware上的Ubuntu拒绝了我的连接请求,待解决。
  • vscode(已完成)

    • 同上
    • 可以在vscode和Ubuntu配置rsa公钥,免密码登录
  • 远程控制连不上,也问题不大,直接在Ubuntu里写代码不就解决问题了吗?
    既然下载了Ubuntu,还要用远程控制,岂不是有一点脱裤子放屁的感觉

2.GCC

  • 安装GCC和G++

    • 版本大于4.8.5(2021年都是7.5了)
    • gcc全名:GNU C… C…编译器套件

Day1-配置环境、GCC、静态链库

Day1-配置环境、GCC、静态链库

Day1-配置环境、GCC、静态链库

  • gcc的命令

    • gcc编译格式: gcc xx.c -o 生成的可执行文件名称
      -E:预编译

    • -S:生成汇编代码

  • 一般来说,gcc用来编译C程序,g++编译C++程序

3.静态库的制作和使用

静态库,在程序的链接阶段被复制到了程序中。

写库的目的和好处:

  • 代码保密;C++的反编译解密程度比较低
  • 方便部署和分发

静态库的制作方法:

  1. 命名规则:libxxx.a

  2. gcc -c(编译但不链接)获得.o文件,然后将.o文件使用程序ar文件打包

    1. ar rcs libxxx.a xx.o xx.o、

静态库的使用方法

在要编译的文件中,使用-L ,-I指令搜索对应文件夹下的库和文件,正确编译文件

  • 视频中的那些代码没有给出来,如果想在Linux上练习一下静态库的生成和使用,可以点这篇文章

文章跳转地址

(一个疑问,静态库的使用,和我们在Windows上使用IDE写程序,在程序上直接包含头文件,有什么区别吗?

或者说,IDE帮我们完成了静态的打包和链接这个过程?)

上一篇:Problem J 小明画画


下一篇:算法作业题解