vs2017运行显示系统找不到指定的文件_windows 平台使用 VS2017 编译 libevent 源码
生活随笔
收集整理的這篇文章主要介紹了
vs2017运行显示系统找不到指定的文件_windows 平台使用 VS2017 编译 libevent 源码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一 依賴庫編譯
先要將其依賴的庫編譯好,其中openssl需要編譯到libevent中,編譯成libevent_openssl.lib庫,zlib在新版本中只有示例用到。
1)windows 平臺使用 VS2017 編譯 openssl 源碼
參考前面的文章
- openssl 默認編譯到 C:Program Files (x86)OpenSSL 目錄,包含收文件,lib文件和dll文件,待會需要配置此路徑,或者直接把編譯好的openssl庫復制到指定路徑中。
2)使用 VS2017 編譯 zlib 源碼
1) 官方網站
- http://www.zlib.net/
2)編譯工具:VS2017社區版本
- 下載地址
- http://ffmpeg.club/tools_download.html
3)下載zlib1.2.11源碼
- 下載地址
- http://ffmpeg.club/libevent.html
4) 編譯步驟
- (1)進入控制臺(運行 CMD),或者編寫批處理bat文件
- (2)運行vs編譯環境
- 打開菜單中VS2017中有對應的命令行工具,把地址復制過來
- 編譯32位庫版本
- C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvarsamd64_x86.bat
- 編譯64位庫版本
- "C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvars64.bat"
- 運行后出現如下內容
- (3)進入zlib源碼嗎目錄
- cd zlib-1.2.11
- (4)用nmake編譯
- nmake -f win32/Makefile.msc -
- 編譯好后生成的動態庫 zdll.dll zdll.lib 和靜態庫zlib.lib都在zlib-1.2.11根目錄下。
二 libevent編譯環境準備
操作系統:windows 10 64位
編譯工具:VS2017社區版本
- 下載地址
- http://ffmpeg.club/tools_download.html
libevent 2.1.8 源碼
- 下載地址
- http://www.libevent.net/download
三 編譯libevent源碼
1)依賴安裝編譯
- 編譯工具:VS2017社區版本
- 下載地址
- http://ffmpeg.club/tools_download.html
- 編譯好openssl安裝后復制到 D:libopenssl 路徑
- libevent_openssl.lib 庫需要,如果不用此庫可以不編譯openssl
- 編譯好zlib 安裝在D:libeventzlib-1.2.11
- 新版本libevent已經和zlib分離,但是示例有用zlib,如果不需要此示例可以不編譯zlib
2) 編譯步驟
- (1)進入控制臺(運行 CMD),或者編寫批處理bat文件
- (2)運行vs編譯環境
- 打開菜單中VS2017中有對應的命令行工具,把地址復制過來
- 編譯32位庫版本
- C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvarsamd64_x86.bat
- 編譯64位庫版本
- "C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvars64.bat"
- (3)進入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的庫項目和示例項目,編譯的示例項目由于用了zlib并且openssl版本比較舊,所以會產生問題
3)編譯中出現的問題
- (1)示例中的openssl問題
- 出現的問題
- 編譯錯誤、會顯示找不到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問題
- 出現的問題
- 默認不編譯zlib示例,設置編譯后找不到zlib庫和頭文件
- 解決方案
- 在編譯libevent之前設置編譯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
總結
以上是生活随笔為你收集整理的vs2017运行显示系统找不到指定的文件_windows 平台使用 VS2017 编译 libevent 源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: exe打包工具_pyqt5快速上手基础篇
- 下一篇: python网络爬虫权威指南 豆瓣_福利