libevent 2.1.8 編譯常見錯誤
阿新 • • 發佈:2019-02-14
直接用vs 命令列工具編譯,我用的是VS2012 X86編譯:切換到libevent目錄下,執行nmake /f Makefile.nmake,報錯:
總體上有兩個問題,
1. regress_http.c語法錯誤
regress_http.c(3611) : error C2059: 語法錯誤:“.”
regress_http.c(3655) : error C2059: 語法錯誤:“.”
兩個錯誤,我用notpad++開啟看了下。應該是宣告初始化出錯。改一下就編譯成功了
用notpad++開啟 找到第3611行和3655行
找到:struct http_server hs = { .port = 0, .ssl = ssl, }; 修改為 struct http_server hs = { 0, ssl, }; 就可以編譯成功了。
2.不知道如何生成“print-winsock-errors.obj”
cl /I.. /I../WIN32-Code /I../WIN32-Code/nmake /I../include /I../compat /DHAVE_CONFIG_H /DTINYTEST_LOCAL /Ox /W3 /wd4996 /nologo ..\libevent.lib ws2_32.lib shell32.lib advapi32.lib test-changelist.obj
NMAKE : fatal error U1073: don't know how to make 'print-winsock-errors.obj'
錯誤原因是找不到print-winsock-errors.c,其他的libevent版本是有這個檔案的,於是拷貝過來,在執行順利通過,產生三個libevent.lib libevent_core.lib libevent_extras.lib
可以去github下載原始碼直接考到test下就再編譯就可以了,我也提供一個我下載好的原始碼[下載地址:]https://download.csdn.net/download/xuebing1995/10644264