目前有一个旧的程序 基于很老的ubuntu1004的系统做开发 很多新的C++11什么的都用不了
之前 很多在ubuntu1804 上编译的so库
直接拿到1004上来用 提示报错 如下
没办法 只能重新在ubuntu 1004 上面编译了 记录下
下载libevent之后解压
直接执行./configure 提示报错如下图
默认openssl是开启的 只需要 关闭这个特性即可
新建一个build.sh脚本 内容如下:
prefix指定编译之后的库的安装目录 这里必须要用绝对路径 相对路径会报错
disable-openssl关闭openssl功能
然后执行./build.sh
没啥问题执行make
没问题 然后 make install
已经成功 生成了 了对应的so和a文件
将便已生成的库复制到对应工程目录
在重新编译 没有出错了如下图
makefile如何引用libevent如下
代码如下:
对了默认使用的是动态so库
为了方便 我们使用静态库编译 删除 lib目录里面的所有so文件
重新执行makefile 报错
没有找到线程对应的函数 已经时间函数
只需要连接上 这两个库即可
重新编译没问题
由于使用了静态库 编译出来的程序比之前大了不少
qmcy动态库大概186K
静态库 约989K
静态库的好处就是编出来只有一个文件 不用担心 移动到别的机子上还需要把so库也已过去
缺点就是编译出来的可执行文件都很大 原因就是已经把库里面的函数都包含进去了
程序跑起来之后 发一个get
请求已经可以正常工作了