procmon 源码在 muduo 库下,下面我们通过安装muduo库,编译procmon 源码。
2.4.2.1 安装依赖
muduo库拉取:git clone https://gitee.com/TRr320/muduo-master.git
1. muduo采用CMake为build system,安装方法如下:
安装cmake: sudo apt-get install cmake
2. muduo依赖于Boost,也很容易安装:
安装boost库 sudo apt-get install libboost-dev libboost-test-dev
muduo有三个非必需的依赖库:curl、c-ares DNS、Google Protobuf,如果安装了这三个库,cmake会自动多编译一些示例。安装方法如下:
sudo apt-get install libcurl4-openssl-dev libc-ares-dev
sudo apt-get install protobuf-compiler libprotobuf-dev
安装好后,进入muduo目录中,依次执行 bulid.sh 、cmke、make 安装muduo 库。
bash build.sh
cmake CMakeLists.txt
make
3. 设置muduo库路径
将muduo库路径加入环境变量中我们在编译的时候程序就可以自行查找库文件的位置,如果不将这些库文件的位置加入环境变量,我们还可以使用gcc/g++ 中的 -l -L -i
选项指定他们的位置。
这里采用cmake管理程序的安装,因此我们需要将这些库文件位置加入环境变量。
对所有用户有效在/etc/profile增加以下内容。只对当前用户有效在Home目录下的
.bashrc或.bash_profile里增加下面的内容:
(注意:等号前面不要加空格,否则可能出现 command not found)
#在PATH中找到可执行文件程序的路径。
export PATH =$PATH:$HOME/bin
#gcc找到头文件的路径
C_INCLUDE_PATH=/xxx/xxx/xxx
export C_INCLUDE_PATH
#g++找到头文件的路径
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/xx/xxx/xxx
export CPLUS_INCLUDE_PATH
#找到动态链接库的路径
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/xxx
export LD_LIBRARY_PATH
#找到静态库的路径
LIBRARY_PATH=$LIBRARY_PATH:/xxx
export LIBRARY_PATH
尝试编译后,从编译提示看我们还需要安装gd库。
4. 安装libgd库
libgd github:https://github.com/libgd/libgd
git地址:https://github.com/libgd/libgd.git
将 libgd 拉取到本地,然后使用cmake安装。
安装:使用cmake生成makefile
使用makefile安装
5. 将gd.h加入环境变量
现在将gd.h加入全局变量,如果不知道它的路径可以使用 locate 命令查询,然后将它的路径加入 CPLUS_INCLUDE_PATH中。
相关环境变量设置,参考
2.4.2.2 编译
首先使用 cmake生成makefile文件。
cmake CMakeLists.txt
如果上述环境变量都设置的没问题,那么直接执行make即可完成编译。
如果提示某某文找不到,例如库文件:
我们将 libgd 的位置找到,添加到对应的环境变量即可。这里建议另开一个窗口,将环境变量的配置写进 .bashrc 文件中(便于修改,且全局生效)。
将对应配置修改好后,利用 source 重新加载配置文件,然后 make 编译即可。
编译成功: