環境准備
名稱 | 版本 | 下載/安裝方式 | 描述 |
---|---|---|---|
Ubuntu | ubuntu 18x64 | 官網下載 | ubuntu 官網 https://ubuntu.com/download/desktop |
perl | 最新版 | apt-get | 腳本解釋器,編譯openssl用 |
g++ | 最新版 | apt-get | C++編譯器 |
make | 最新版 | apt-get | 用於根據Makefile編譯,生成elf目標文件 |
automake | 最新版 | apt-get | 用於生成Makefile |
libtool | 最新版 | apt-get | 庫文件工具 |
unzip | 最新版 | apt-get | 解壓壓縮包 |
zlib | zlib-1.2.11.tar.gz | 官網下載 | http://www.zlib.net/ |
openssl | openssl-1.1.1.tar.gz | 官網下載 | https://www.openssl.org/source/ |
libevent | libevent-2.1.12-stable.tar.gz | 官網下載 | https://libevent.org/ |
依賴環境安裝
$ sudo apt-get install perl g++ make automake libtool unzip
編譯zlib
- 解壓
$ tar -xvf zlib-1.2.11.tar.gz
- 進入解壓后zlib目錄
$ cd zlib-1.2.11
- 生成Makefile文件
$ ./configure
- make命令編譯
$ make
該命令會在zlib主目錄下生成.o文件
- 安裝庫文件
$ sudo make install
該命令會把庫文件(.a/.so, .h)安裝到/usr/local/lib和/usr/local/include
目錄下;man手冊文件安裝到/usr/local/share/man/man3
編譯openssl
- 解壓openssl
$ tar -xvf openssl-1.1.1.tar.gz
- 進入解壓后的openssl目錄
$ cd openssl-1.1.1
- 生成Makefile
$ ./config
- 編譯
$ make
- 安裝庫文件
$ sudo make install
編譯libevent
- 解壓libevent
$ tar -xvf libevent-2.1.12-stable.tar.gz
- 進入解壓后目錄
$ cd libevent-2.1.12-stable
- 生成configure文件
$ ./autogen.sh
- 生成Makefile
$ ./configure
- cmake編譯
也可以直接運行make命令,這樣.o文件都會生成到主目錄
$ mkdir build && cd build # optional
$ cmake .. # optional
$ make
- 安裝庫文件
$ sudo make install
FAQ
如果執行"sudo apt-get install"時,出現"Could not get lock /var/lib/dpkg/lock"問題
具體報錯:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
問題原因:apt還在運行
解決方法:
- 查找所有apt相關進程,用kill命令殺死
$ ps afx | grep apt
...
$ sudo kill -9 pid
- 刪除鎖定文件
$ cd /var/lib/dpkg
$ sudo rm lock
...
# 一直到所有鎖定文件刪除