日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

vs2017运行显示系统找不到指定的文件_windows 平台使用 VS2017 编译 libevent 源码

發(fā)布時間:2025/4/17 windows 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vs2017运行显示系统找不到指定的文件_windows 平台使用 VS2017 编译 libevent 源码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一 依賴庫編譯

先要將其依賴的庫編譯好,其中openssl需要編譯到libevent中,編譯成libevent_openssl.lib庫,zlib在新版本中只有示例用到。

1)windows 平臺使用 VS2017 編譯 openssl 源碼

參考前面的文章

  • openssl 默認(rèn)編譯到 C:Program Files (x86)OpenSSL 目錄,包含收文件,lib文件和dll文件,待會需要配置此路徑,或者直接把編譯好的openssl庫復(fù)制到指定路徑中。

2)使用 VS2017 編譯 zlib 源碼

1) 官方網(wǎng)站

  • http://www.zlib.net/

2)編譯工具:VS2017社區(qū)版本

  • 下載地址
  • http://ffmpeg.club/tools_download.html

3)下載zlib1.2.11源碼

  • 下載地址
  • http://ffmpeg.club/libevent.html

4) 編譯步驟

  • (1)進(jìn)入控制臺(運(yùn)行 CMD),或者編寫批處理bat文件
  • (2)運(yùn)行vs編譯環(huán)境
  • 打開菜單中VS2017中有對應(yīng)的命令行工具,把地址復(fù)制過來
  • 編譯32位庫版本
  • C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvarsamd64_x86.bat
  • 編譯64位庫版本
  • "C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvars64.bat"
  • 運(yùn)行后出現(xiàn)如下內(nèi)容
  • (3)進(jìn)入zlib源碼嗎目錄
  • cd zlib-1.2.11
  • (4)用nmake編譯
  • nmake -f win32/Makefile.msc -
  • 編譯好后生成的動態(tài)庫 zdll.dll zdll.lib 和靜態(tài)庫zlib.lib都在zlib-1.2.11根目錄下。

二 libevent編譯環(huán)境準(zhǔn)備

操作系統(tǒng):windows 10 64位

編譯工具:VS2017社區(qū)版本

  • 下載地址
  • http://ffmpeg.club/tools_download.html

libevent 2.1.8 源碼

  • 下載地址
  • http://www.libevent.net/download

三 編譯libevent源碼

1)依賴安裝編譯

  • 編譯工具:VS2017社區(qū)版本
  • 下載地址
  • http://ffmpeg.club/tools_download.html
  • 編譯好openssl安裝后復(fù)制到 D:libopenssl 路徑
  • libevent_openssl.lib 庫需要,如果不用此庫可以不編譯openssl
  • 編譯好zlib 安裝在D:libeventzlib-1.2.11
  • 新版本libevent已經(jīng)和zlib分離,但是示例有用zlib,如果不需要此示例可以不編譯zlib

2) 編譯步驟

  • (1)進(jìn)入控制臺(運(yùn)行 CMD),或者編寫批處理bat文件
  • (2)運(yùn)行vs編譯環(huán)境
  • 打開菜單中VS2017中有對應(yīng)的命令行工具,把地址復(fù)制過來
  • 編譯32位庫版本
  • C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvarsamd64_x86.bat
  • 編譯64位庫版本
  • "C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvars64.bat"
  • (3)進(jìn)入libevent源碼嗎目錄
  • cd libevent-master
  • (4)清理之前的編譯
  • nmake /f Makefile.nmake clean
  • (5)編譯libevent
  • nmake /f Makefile.nmake OPENSSL_DIR=D:libopenssl
  • OPENSSL_DIR 是openssl庫的路徑,之前版本需要制定zlib庫路徑,新版本不需要
  • (6)編譯包含了libevent的庫項(xiàng)目和示例項(xiàng)目,編譯的示例項(xiàng)目由于用了zlib并且openssl版本比較舊,所以會產(chǎn)生問題

3)編譯中出現(xiàn)的問題

  • (1)示例中的openssl問題
  • 出現(xiàn)的問題
  • 編譯錯誤、會顯示找不到openssl的ssleay32.lib和libeay32.lib庫
  • 原因
  • 舊版本的openssl和新版本采用不同庫名
  • 解決方案
  • 打開test目錄下的Makefile.nmake
  • 找到 SSL_LIBS=..libevent_openssl.lib $(OPENSSL_DIR)liblibeay32.lib $(OPENSSL_DIR)libssleay32.lib gdi32.lib User32.lib
  • 修改為 SSL_LIBS=..libevent_openssl.lib $(OPENSSL_DIR)liblibssl.lib $(OPENSSL_DIR)liblibcrypto.lib gdi32.lib User32.lib
  • (2)示例中的zlib問題
  • 出現(xiàn)的問題
  • 默認(rèn)不編譯zlib示例,設(shè)置編譯后找不到zlib庫和頭文件
  • 解決方案
  • 在編譯libevent之前設(shè)置編譯zlib示例
  • 修改WIN32-Codemakeevent2event-config.h
  • 添加#define EVENT__HAVE_LIBZ
  • 修改原因在示例代碼testegress_bufferevent.c 1382行中做了如下判斷
  • #ifdef EVENT__HAVE_LIBZ
  • LEGACY(bufferevent_zlib, TT_ISOLATED),
  • #else
  • { "bufferevent_zlib

總結(jié)

以上是生活随笔為你收集整理的vs2017运行显示系统找不到指定的文件_windows 平台使用 VS2017 编译 libevent 源码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。