0
点赞
收藏
分享

微信扫一扫

libevent 编译与安装 (WIN10 visual studio2019, ubuntu,centos)


文章目录

  • ​​一、准备安装包​​
  • ​​二、编译与安装​​
  • ​​编译zlib​​
  • ​​编译openssl​​
  • ​​编译libevent​​
  • ​​三、libevent集成zlib测试程序修改编译(可选)​​
  • ​​四、测试程序​​
  • ​​五、linux(ubuntu)测试​​
  • ​​安装依赖环境,依次编译zlib,openssl,libevent​​
  • ​​windows与linux共享文件夹(使用root操作)​​
  • ​​linux测试​​

一、准备安装包

前置环境,安装好了VS2017及以上版本

libevent 【下载地址】:​​https://libevent.org/​​zlib   【下载地址】:​​https://www.zlib.net/​​openssl 【下载地址】:​​https://www.openssl.org/source/old/1.1.1/​​

perl   【下载地址】:​​https://www.perl.org/get.html​​nasm   【下载地址】:​​https://nasm.us/​​

直接下载链接:​​https://pan.baidu.com/s/1lrSPMjmugcYWbkIjlqPC2g​​ 提取码:5exw

准备好目录如下

PS D:\libevent_project> ls


目录: D:\libevent_project


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/10/18 9:11 22375320 ActivePerl-5.24.3.2404-MSWin32-x64-404865.exe
-a---- 2021/10/18 9:07 1026485 libevent-2.1.8-stable.tar.gz
-a---- 2021/10/18 9:11 588621 nasm-2.13.03-win64.zip
-a---- 2021/10/15 17:45 9834044 openssl-1.1.1.tar.gz
-a---- 2021/10/15 17:40 607698

二、编译与安装

解压zlib-1.2.11.tar.gz
解压libevent-2.1.8-stable.tar.gz
解压openssl-1.1.1l.tar.gz

编译zlib

在​​D:\libevent_project​​​目录下,编写批量编译脚本​​build_zlib_vs2019_32.bat​​并执行。

@echo "==========start build zlib============"
set VS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
set OUT="D:\libevent_project\build_project_vs2017_32\zlib"
call %VS%
cd zlib-1.2.11
nmake /f win32\Makefile.msc clean
nmake /f win32\Makefile.msc
md %OUT%\lib
md %OUT%\bin
md %OUT%\include
copy /Y *.lib %OUT%\lib
copy /Y *.h %OUT%\include
copy /Y *.dll %OUT%\bin
copy /Y *.exe %OUT%\bin
@echo "==========end build zlib============"

编译完成查看​​D:\libevent_project\build_project_vs2017_32\zlib​​目录下的lib,include,bin三个目录下的文件是否存在。

编译openssl

双击安装ActivePerl.exe文件,一路下一步安装完成。
解压nasm-2.13.03-win64.zip文件,配置exe文件所在目录的环境变量即可。

perl 使用方法:

  • perl Configure {VC-WIN32 | VC-WIN64A | VC-WIN64 | VC-CE} --prefix=%OUTPATH%
    perl Configure VC-WIN32 编译32位程序
    perl Configure VC-WIN64A 编译64位程序

使用perl生成makefile文件

进入​​cd D:\libevent_project\openssl-1.1.1​​目录下生成Makefile文件,执行如下指令:

​perl Configure VC-WIN32 --prefix=D:\libevent_project\build_project_vs2017_32\openssl​

libevent 编译与安装 (WIN10 visual studio2019, ubuntu,centos)_libevent


执行nmake 进行编译,以管理员身份执行nmake install进行安装。

或者使用如下批处理安装脚本。

在​​D:\libevent_project​​​目录下,编写批量编译脚本​​build_openssl_vs2019_32.bat​​以管理员身份执行。

@echo "==========start build openssl============"
set VS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
set OUT="D:\libevent_project\build_project_vs2017_32\openssl"
call %VS%
D:
cd D:\libevent_project\openssl-1.1.1
perl Configure VC-WIN32 --prefix=%OUT%
nmake clean
nmake
nmake install
@echo "==========end build openssl============"

libevent 编译与安装 (WIN10 visual studio2019, ubuntu,centos)_libevent_02

编译libevent

进入​​D:\libevent_project\libevent-2.1.8-stable​​目录下,以管理员身份执行如下指令:

​nmake /f Makefile.nmake OPENSSL_DIR=D:\libevent_project\build_project_vs2017_32\openssl​

libevent 编译与安装 (WIN10 visual studio2019, ubuntu,centos)_测试程序_03


进入​​D:\libevent_project\libevent-2.1.8-stable\test​​目录下

修改​​Make.nmake​​文件内容第六行后,如下:

​SSL_LIBS=..\libevent_openssl.lib $(OPENSSL_DIR)\lib\libssl.lib $(OPENSSL_DIR)\lib\libcrypto.lib gdi32.lib User32.lib​​运行libevent\test\regress.exe测试编译结果

如果都显式OK,没有报错,则说明编译成功;否则,编译失败。

如果提示缺少libcrypto-1_1.dll,libssl-1_1.dll这2个文件,就从openssl\bin目录下拷贝到regress.exe所在路径。

libevent 编译与安装 (WIN10 visual studio2019, ubuntu,centos)_测试程序_04


查看regress.log是否都ok,若无错误则编译成功。

三、libevent集成zlib测试程序修改编译(可选)

test工作路径=​​D:\libevent_project\libevent-2.1.8-stable\test\​

  1. 添加编译目标
    编辑 test工作路径 下的​​​Makefile.nmake​​​23行末尾添加​​regress_zlib.obj​​(注意加空格)
  2. 复制之前编译好的zlib整个文件夹(即bin,lib.include三个文件夹)到​​D:\libevent_project\libevent-2.1.8-stable​
  3. 添加编译目标(包含目录)
    编辑 test工作路径​​​Makefile.nmake​​​13行​​CFLAGS=​​​后面加​​/I../zlib/include​
  4. 添加编译目标(添加库目录)
    编辑 test工作路径 下的​​​Makefile.nmake​​​39行末尾添加​​..\zlib\lib\zdll.lib​​(注意加空格)
  5. 复制文件​​D:\libevent_project\build_project_vs2017_32\zlib\bin\zlib1.dll​​到 test工作路径
  6. 编辑​​D:\libevent_project\libevent-2.1.8-stable\WIN32-Code\nmake\event2\event-config.h​​​86行下添加​​#define EVENT__HAVE_LIBZ​

清理之前的编译并再次编译

nmake /f Makefile.nmake clean
nmake /f Makefile.nmake OPENSSL_DIR=D:\libevent_project\build_project_vs2017_32\openssl

libevent 编译与安装 (WIN10 visual studio2019, ubuntu,centos)_libevent_05

测试:查看regress.log文件

libevent 编译与安装 (WIN10 visual studio2019, ubuntu,centos)_linux_06

编译libevent批处理程序

@echo "==========start build libevent============"
set VS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
set OUT="D:\libevent_project\build_project_vs2017_32\libevent"
call %VS%
cd D:\libevent_project\libevent-2.1.8-stable
nmake /f Makefile.nmake clean
nmake /f Makefile.nmake OPENSSL_DIR=D:\libevent_project\build_project_vs2017_32\openssl
md %OUT%\lib
md %OUT%\bin
md %OUT%\include
copy /Y *.lib %OUT%\lib
xcopy /S/Y include %OUT%\include\
xcopy /S/Y WIN32-Code\nmake %OUT%\include\
copy /Y *.dll %OUT%\bin
copy /Y *.exe %OUT%\bin
@echo "==========end build libevent============"

四、测试程序

新建项目,右击【配置】配置如下:
【C/C++】->【常规】->【预编译头】不使用预编译头
【C/C++】->【常规】->【附加包含路径】添加​​​D:\libevent_project\build_project_vs2017_32\libevent\include​​​ 【链接器】->【常规】->【附加库目录】添加​​D:\libevent_project\build_project_vs2017_32\libevent\lib​

【链接器】->【输入】->【附加依赖性】添加:

libevent.lib
libevent_core.lib
libevent_extras.lib
libevent_openssl.lib
ws2_32.lib
zlib.lib

测试程序如下:

#include <iostream>
#include <event2/event.h>

int main(int argc, char** argv) {
#if _WIN32
//windowns 初始化socket库
WSADATA wsa;
WSAStartup(MAKEWORD(2, 2), &wsa);
#endif

event_base* base = event_base_new();
if (base) {
std::cout << "first libevent" << std::endl;
}
return 0;
}

五、linux(ubuntu)测试

安装依赖环境,依次编译zlib,openssl,libevent

sudo apt-get install perl g++ make automake libtool unzip vim zip

tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install

tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
./config
make
make install

tar -zxvf libevent-2.1.8-stable.tar.gz
./autogen.sh
./configure
make
make install
test/regress > ../regress.log #测试安装(查看zlib,openssl是否成功)

报错:./testlibevent: ​​error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory​​​ 执行:​​ln -s /usr/local/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6​

windows与linux共享文件夹(使用root操作)

  1. ​​Ubuntu安装VMware Tools​​
  2. ​​虚拟机中ubuntu使用共享文件夹(选择win10目录)​​
  3. 默认挂载路径:​​/mnt/hgfs​
  4. ​​挂载新路径方便使用:​​

cd ~
mkdir libevent_src
mkdir -p /mnt/hgfs/libevent_learning # 这个名字随便取(被挂载后覆盖了)
sudo mount

  1. ​​【拓展阅读】关于服务器之间路径映射​​

linux测试

写Makefile,执行make clean && make

firstlibevent:main.cpp
g++ $^ -o $@ -levent
./$@

clean:
rm -rf firstlibevent
rm

libevent 编译与安装 (WIN10 visual studio2019, ubuntu,centos)_perl_07

参考
问题解决:zlib编译x64​


举报

相关推荐

0 条评论