windows編譯libevent時報告“缺少print_winsock_errors.obj”的解決

一、綜述

Libevent 是一個用C語言編寫的、輕量級的開源高性能事件通知庫。

在libevent官網(http://libevent.org)下載源碼包,在Windows平臺編譯時,會報缺少“print_winsock_errors.obj”的錯誤。

?

二、原因及解決

經檢查,這是因為源碼包中缺少文件test/print_winsock_errors.c導致,原因未知。

解決方法:手工生成test/print_winsock_errors.c,以下為從git搜索到的代碼內容:

#include <winsock2.h>
#include <windows.h>#include <stdlib.h>
#include <stdio.h>#include "event2/event.h"
#include "event2/util.h"
#include "event2/thread.h"#define E(x) printf (#x " -> \"%s\"\n", evutil_socket_error_to_string (x));int main (int argc, char **argv)
{int i, j;const char *s1, *s2;#ifdef EVTHREAD_USE_WINDOWS_THREADS_IMPLEMENTEDevthread_use_windows_threads ();
#endifs1 = evutil_socket_error_to_string (WSAEINTR);for (i = 0; i < 3; i++) {printf ("\niteration %d:\n\n", i);E(WSAEINTR);E(WSAEACCES);E(WSAEFAULT);E(WSAEINVAL);E(WSAEMFILE);E(WSAEWOULDBLOCK);E(WSAEINPROGRESS);E(WSAEALREADY);E(WSAENOTSOCK);E(WSAEDESTADDRREQ);E(WSAEMSGSIZE);E(WSAEPROTOTYPE);E(WSAENOPROTOOPT);E(WSAEPROTONOSUPPORT);E(WSAESOCKTNOSUPPORT);E(WSAEOPNOTSUPP);E(WSAEPFNOSUPPORT);E(WSAEAFNOSUPPORT);E(WSAEADDRINUSE);E(WSAEADDRNOTAVAIL);E(WSAENETDOWN);E(WSAENETUNREACH);E(WSAENETRESET);E(WSAECONNABORTED);E(WSAECONNRESET);E(WSAENOBUFS);E(WSAEISCONN);E(WSAENOTCONN);E(WSAESHUTDOWN);E(WSAETIMEDOUT);E(WSAECONNREFUSED);E(WSAEHOSTDOWN);E(WSAEHOSTUNREACH);E(WSAEPROCLIM);E(WSASYSNOTREADY);E(WSAVERNOTSUPPORTED);E(WSANOTINITIALISED);E(WSAEDISCON);E(WSATYPE_NOT_FOUND);E(WSAHOST_NOT_FOUND);E(WSATRY_AGAIN);E(WSANO_RECOVERY);E(WSANO_DATA);E(0xdeadbeef); /* test the case where no message is available *//* fill up the hash table a bit to make sure it grows properly */for (j = 0; j < 50; j++) {int err;evutil_secure_rng_get_bytes(&err, sizeof(err));evutil_socket_error_to_string(err);}}s2 = evutil_socket_error_to_string (WSAEINTR);if (s1 != s2)printf ("caching failed!\n");libevent_global_shutdown ();return EXIT_SUCCESS;
}

然后使用VS命令提示工具,在libevent解壓目錄下執行:nmake /f Makefile.nmake,編譯順利通過。

?

三、其它

經檢查,在官網列出的1.4.x-stable, 2.0.x-stable, 2.1.x-stable等版本中貌似均存在此問題。

print_winsock_errors.c只有一段測試代碼,沒有也關系不大,因此另一種解決方法是:修改CmakeFileList,從中刪除與print_winsock_errors有關的內容。

轉載于:https://www.cnblogs.com/wggj/p/7472607.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282500.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282500.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282500.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

7.python之正則表達式re模塊

一.正則表達式中常用元字符的復習。通配符系列.(點)匹配任意一個除換行符以外的字符。*(星號)用來匹配*星號前面的字符或者一組字符0到無窮次。可以寫為0(加號)匹配加號前面的一個字符或者一組字符1到無窮次。可以寫為1?(問號)匹配問號前面的一個字符或者一組字符0到1次。可以…

C# WPF開源控件庫HandyControl用法舉例

概述HandyControl是一款免費開源的WPF控件庫&#xff0c;Github可以獲取到源代碼&#xff0c;相關的示例代碼也在github上能獲取到&#xff0c;但是沒有詳細的中文說明文檔&#xff0c;對于新手而言使用起來還是會有一些困擾&#xff0c;網上也很難搜到相關的用法示例&#xff…

nginx服務器,訪問時顯示目錄,不直接顯示index.php

一、效果 二、解決方案 修改網站配置文件&#xff0c;添加如下代碼&#xff1a; autoindex on; autoindex_exact_size off; autoindex_localtime on; 修改后的網站配置文件如下&#xff1a; server {listen 80;server_name test.haveyb.com;charset utf-8;error_log …

復選框checked 選中后不顯示打鉤

復選框checked 選中后不顯示打鉤 checkbox屬性checked"checked"已有&#xff0c;但復選框卻不顯示打鉤的原因 復選框綁定了click事件&#xff0c;點一次選中&#xff0c;再點擊取消選中&#xff0c; 第一次&#xff0c;可以正常顯示選中和取消&#xff0c;但當再去選…

dotnet7 aot編譯實戰

原文地址&#xff1a;https://www.cnblogs.com/kewei/p/16722674.html0 起因這段日子看到dotnet7-rc1發布&#xff0c;我對NativeAot功能比較感興趣&#xff0c;如果aot成功&#xff0c;這意味了我們的dotnet程序在防破解的上直接指數級提高。我隨手使用asp.netcore-7.0模板創建…

實現ModelDriver接口的功能(轉)

ModelDriver接口 來自com.opensymphony.xwork2.ModelDriven。是xwork-2.1.2-750.jar包的東西。 下面是源碼&#xff1a; package com.opensymphony.xwork2; public abstract interface ModelDriven<T> { public abstract T getModel(); } 該接口只有一個getModel()方法…

Git的使用(推薦命令行模式)

一 使用 git版本控制已經逐漸取代cvs,svn等版本控制,對于一名程序員來說,使用git同樣是一門必備的功課.1. 倉庫初始化查看文件.如果有.git文件夾,說明創建本地倉庫成功(.git是隱藏文件夾)2. 修改用戶名和郵箱本地配置:注: 在全局配置與本地配置都存在用戶名時,本地配置優先級更…

.NET MAUI 環境配置技巧

關于 .NET MAUI 國內?伙伴在配置 .NET MAUI 的時候&#xff0c;遇到不少問題。希望通過本教程&#xff0c;給到大家?些指引。01基礎組件部分.NET SDK 安裝建議安裝最新的 .NET SDK下載地址 https://dotnet.microsoft.com/download/dotnet/6.0安裝 .NET MAUI安裝 .NET MAUI 成…

Linux中一些常用的很巧妙的命令

當你想要使用上一個命令的最后一個參數&#xff0c;&#xff08;上一個命令的最后一個參數很長&#xff09;&#xff0c;可以使用 esc .      (是esc 點&#xff09; !$ 引用上一個命令的最后一個參數 對命令行的編輯快捷方式&#xff1a; Ctr…

android 8種對話框(Dialog)使用方法匯總

本文為作者原創&#xff0c;轉載請注明出處&#xff1a;http://www.cnblogs.com/gzdaijie/p/5222191.html 目錄 1.寫在前面2.代碼示例2.1 普通Dialog&#xff08;圖1與圖2&#xff09;2.2 列表Dialog&#xff08;圖3&#xff09;2.3 單選Dialog&#xff08;圖4&#xff09;2.4 …

使用layui的layer組件做彈出層

官方文檔地址: http://www.layui.com/doc/modules/layer.html 本例演示效果: 當點擊申請提現時,出現申請提現框,并根據用戶輸入進行一些判斷,給出友好提示,比如: 代碼實現: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…

C#之表達式樹使用

目的遇到一個場景需要接收一個表的列來進行動態排序&#xff0c;比如我想根據CreateTime進行正序排序&#xff0c;加上我使用的ORM框架是EFCore&#xff0c;那么我一下子就想到應該使用OrderBy&#xff0c;然后接收一個要排序的列query.OrderBy("CreateTime")但是這樣…

實現一個基于相等性比較的 GroupBy

實現一個基于相等性比較的 GroupByIntro在我們的系統里有些數據可能會有問題&#xff0c;數據源頭不在我們這里&#xff0c;數據不好修復&#xff0c;在做 GroupBy 的時候就會很痛苦&#xff0c;默認的 group by 會依賴于 HashCode &#xff0c;而某些場景下 HashCode 可能并不…

win7系統下載 ghost win7 Sp1 64位純凈3月版

win7系統下載 ghost win7 Sp1 64位純凈3月版 軟件名稱: Ghost Win7 Sp1 64位純凈3月版軟件語言: 簡體中文軟件大小: 5.25大小: GB發布日期: 2017-03-21文件名稱: ZJY_Ghost_win 7_X64_CJ201703.GHOM D 5: EB16DCD608A5CCFE34B58…

CrossPHP框架的常用操作

1. 在視圖控制器中使用$this->res()方法來生成資源文件的絕對路徑$this->res(css/style.css);生成的連接為http://youdomain.com/static/css/style.css2. 生成指定app名稱的連接$this->appUrl()第一個參數為基礎url, 第二個參數為app名稱, 第三個參數為 控制器:方法 第…

WPF-07 Style之觸發器

觸發器能夠在改變屬性值的時候&#xff0c;根據值變化執行操作&#xff0c;在不需要創建一個新的控件的情況下&#xff0c;可以動態的改變控件的外觀&#xff0c;當條件滿足時&#xff0c;觸發器可以改變任何屬性的值&#xff0c;觸發器通常定義在Style中&#xff0c;在窗體的根…

jdk自帶常用命令行工具使用

轉自&#xff1a;http://blog.csdn.net/winwill2012/article/details/46364923jps命令使用jps命令類似于Linux下的ps命令&#xff0c;用于列出當前正在運行的所有Java進程。基本用法直接運行不加任何參數就能列出所有java進程的pid和類的短名稱。例如&#xff1a;常用參數-q參數…

crossphp框架中,在模板中加載其他模板

這里說我自己做的項目的應用場景 要求是用layui框架的layer組件,實現彈出層效果,用原聲PHP無疑很容易做到,但是如果應用到crossphp框架流程就會非常麻煩 這里簡單講一下大致的步驟: 1. 在一個模板文件中應用layui的layer組件實現彈出框 index.tpl.php2. 從我們自己定義的路徑上…

for(auto c:s)與for(auto c:s)

在c11標準下可以執行的特殊格式的for循環語句&#xff0c;區別在于引用類型可以改變原來的值 #include<iostream> using namespace std; int main() {string s("hello world");for(auto c:s)ct;cout<<s<<endl;//結果為hello worldfor(auto &c:…

MASA Framework的MinimalAPIs應用

在以前的MVC引用程序中&#xff0c;控制器是一個功能齊全的框架&#xff0c;但它偏重&#xff0c;因此在.Net6.0官方引入了MinimalAPIs&#xff0c;即最小API&#xff0c;與MVC相比&#xff0c;它足夠的簡潔&#xff0c;適合小型服務來使用&#xff0c;下面就讓我們看看如何使用…