當前位置:首頁 » 編程軟體 » libeventvs編譯

libeventvs編譯

發布時間: 2022-05-21 13:15:09

⑴ 如何編譯和安裝libevent

1.先用:ls -al /usr/lib | grep libevent 查看是否已安裝,如果已安裝且版本低於1.3,則先通過:rpm -e libevent —nodeps 進行卸載。

2.下載libevent安裝包:libevent-1.4.13-stable.tar.gz,然後解壓

3.切換到解壓後的 libevent 主目錄:cd libevent-1.4.13-stable

4.依次執行:
./configure –prefix=/usr (或 ./configure --program-prefix=/usr)
make
make install

⑵ 請問libevent2.0.21支持VC2003的nmake進行編譯嗎編譯test時提示「error LNK2019: 無法解析的外部符號

error LNK2001: unresolved external symbol __endthreadex
的處理方式:

打開project setting 選擇c/c++選項卡

在categroy中選擇code generation 然後修改Use run-time library 為任何一個帶mulitithreaded的選項即可

⑶ libevent庫的使用

很明確的告訴你:VC中可以用libevent庫。
方法:
1、下載libevent源碼
2、用VC編譯,一般編譯成靜態的。
3、在項目中配置libevent庫。
4、引用。
你可以按著以上步驟來。應該沒問題。

⑷ 自己編譯的libevent c++怎麼找到

如果手機是window mobile系統的,還差不多! moto的,系統是linux,也可以在電腦給它編軟體的,不過需要專門的環境。 這叫交叉編譯,也就是在電腦上編譯出來的結果,卻放到手機上運行! 補充回答: 也不一定要裝個linux系統

⑸ 在vs2010編譯qt程序時就會出現錯誤無法打開文件"Qt5Cored.lib"

PrintPreviewDialog pPDlg;
exec_prefix='NONE'PACKAGE='libevent'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_URL=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'

⑹ libevent和nginx哪個源碼

Libevent入門 Libevent英文入門資料<<Fast portable non-blocking network programming with Libevent>>。 網友翻譯上面的資料,製作的《Libevent參考手冊》 上面的兩個資料主要是讓我們熟悉Libevent的使用。 Libevent源碼分析 源碼分析工具,我推薦source insight 或者 Scientific Toolworks Understand,source insight很多年沒有更新了,使用下來還是Understand方便。 開始分析源碼肯定比較痛苦,尤其是對新手,因為不知道從哪裡開始,所以可以考慮參考《Libevent源碼深度剖析》,在前人的基礎之上慢慢擴展,這樣可以事倍功半。
很明確的告訴你:VC中可以用libevent庫。
方法:
1、下載libevent源碼。
2、用VC編譯,一般編譯成靜態的。
3、在項目中配置libevent庫。
4、引用。
你可以按著以上步驟來。應該沒問題。

⑺ libevent是跑在什麼系統上的

一.C10K的問題 C10K的問題在上個世紀90年代就被提出來了。大概的意思是當用戶數超過1萬時,很多設計不良好的網路服務程序性能都將急劇下降、甚至癱瘓。並且,這個問題並不能通過升級硬體設備解決,是操作系統固有的問題,也就是說,如果你的伺服器最高能支撐1000個並發,盡管你升級了計算能力高一倍的 cpu,內存再翻一番,硬碟轉速在快一倍,也無法支撐2000個並發。 經典的網路編程模型有4個: 1. Serve one client with each thread/process, and use blocking I/O。即對每個客戶都使用不同的線程或進程進行服務,在每個線程或進程中使用阻塞I/O。這是小程序和java常用的策略,對於互動式的應用也是常見的選擇,這種策略很能難滿足高性能程序的需求,好處是實現極其簡單,容易實現復雜的交互邏輯。我們常用的Apache、ftpd等都是這種工作。 2. Serve many clients with single thread, and use nonblocking I/O and readiness notification。即對所有的客戶使用單一一個線程或進程進行服務,在這個線程或進程里,採用非同步IO的策略。這是經典模型,優點在於實現較簡單,方便移植,也能提供足夠的性能;缺點在於無法充分利用多CPU的資源。 3. Serve many clients with each thread, and use nonblocking I/O and readiness notification 對經典模型2的簡單改進,仍然採用非同步IO的策略,但對所有的客戶使用多個線程或進程進行服務。缺點是容易在多線程並發上出bug,甚至某些OS不支持多線程進行readiness notification 4. Serve many clients with each thread, and use asynchronous I/O 在有AI/O支持的OS上,能提供相當高的性能。不過AI/O編程模型和經典模型差別相當大,基本上很難寫出一個框架同時支持AI/O和經典模型。這個模型主要是用於window平台上。 在linux上開發高性能的網路應用,只能選著第2、3種方式。考慮到復雜性,我們往往只採用第2種。下面就討論一下第二種模型。 我們知道,實現非同步IO一般是採用select 或poll來實現。Select 定義如下: int select(int n, fd_set *rd_fds, fd_set *wr_fds, fd_set *ex_fds, struct timeval *timeout); Poll 的介面如下: int poll(struct pollfd *ufds, unsigned int nfds, int timeout); 然而 Select 和Poll 在連接數增加時,性能急劇下降。這有兩方面的原因:首先操作系統面對每次的select/poll 操作,都需要重新建立一個當前線程的關心事件列表,並把線程掛在這個復雜的等待隊列上,這是相當耗時的。其次,應用軟體在select/poll 返回後也需要對傳入的句柄列表做一次掃描來判斷哪些句柄是可用的,這也是很耗時的。這兩件事都是和並發數相關,而I/O 事件的密度也和並發數相關,導致CPU 佔用率和並發數近似成O(n2)的關系。 因為以上的原因,Unix 上開發了性能更高的epoll, kqueue, /dev/poll 這3個程序介面來解決上述問題。其中epoll 是linux 的方案,kqueue 是freebsd 的方案,/dev/poll 是最古老的Solaris 的方案,使用難度依次遞增。 簡單的說,這些api 做了兩件事: 1. 避免了每次調用select/poll 時kernel 分析參數建立事件等待結構的開銷,kernel 維護一個長期的事件關注列表,應用程序通過句柄修改這個列表和捕獲I/O 事件。 2. 避免了select/poll 返回後,應用程序掃描整個句柄表的開銷,Kernel 直接返回具體的事件列表給應用程序。 二. libevent庫 由於epoll, kqueue, /dev/poll每個介面都有自己的特點,程序移植非常困難,於是需要對這些介面進行封裝,以讓它們易於使用和移植,其中libevent庫就是其中之一。 按照libevent的官方網站,libevent庫提供了以下功能:當一個文件描述符的特定事件(如可讀,可寫或出錯)發生了,或一個定時事件發生了,libevent就會自動執行用戶指定的回調函數,來處理事件。目前,libevent已支持以下介面/dev/poll, kqueue(2), event ports, select(2), poll(2) 和 epoll(4)。Libevent的內部事件機制完全是基於所使用的介面的。因此libevent非常容易移植,也使它的擴展性非常容易。目前,libevent已在以下操作系統中編譯通過:Linux,BSD,Mac OS X,Solaris和Windows。 使用libevent庫進行開發非常簡單,也很容易在各種unix平台上移植。一個簡單的使用libevent庫的程序如下: 三.libevent庫的應用 Go2代理是一個大流量的代理應用,月流量近TB。其中圖片、flash、zip文件占總流量的絕大部分。為了減少流量成本,需要將部分進行分流。開始時,使用了傳統的php代理來分流,但Go2並發訪問極大,多進程架構的php無法承受,在虛擬主機vps上啟動數秒後就立即癱瘓。後改用 python的twisted網路架構,採用了twisted的非同步tcp通訊功能。運行一段時間後,發現twisted的非同步dns穩定性不太好,經常發生系統級的崩潰。最後,經過分析比較,決定採用libevent庫來做Go2 的分流代理應用。 Libevent庫支持非同步socket,支持非同步dns,並本身還帶了個簡單的http 伺服器。Go2 的分流代理應用就是使用了libevent庫的以上三個功能。 1、簡單的http 伺服器:實現的分類代理的用戶端的輸入,輸出管理。 2、非同步socket,實現了高並發性的用戶接入,和高並發性的目的伺服器訪問。 3、非同步dns,解決了dns查詢時的並發性和高效性。

⑻ 有沒有人在windows下,用VS2010成功運行過thrift的程序

Thrift的C++版本,在win下編譯很麻煩。過程:
1.svn下載thrift。你首先要學習,什麼是svn(svn類似ftp)。接著,要去找svn客戶端(類似FlashFXP
)。

2.下載完成後,在目錄里找到 thrift\lib\cpp,裡面有兩個VS工程,一個是libthrift,提供基本服務端功能,另一個是libthriftnb。提供高級服務端功能,比如非同步支持。

3.當前版本0.9.0,但任然需要修改thrift里的部分代碼,才能讓它在win里運行。具體代碼包請加群193713524,裡面有幾個大牛有已經改好的,工作日在群里多找幾個時間問一下。當然,自己改也行,但需要找很多個帖子,不斷嘗試才行,因為有些帖子給出的修改方案並不可取。

4.接下來,需要使用thrift的依賴庫。有兩個,boost和libevent。這兩個依賴庫有很多版本,具體需要哪個版本,在thrift和thriftnb工程->屬性->VC++目錄->包含目錄 里可以看到。由於boost庫編譯後的lib,我死活用不了,而且libevent不需要編譯,只需要進行include就行。因此,我的建議是,只下載 boost和libevent,在編譯時,會提示缺少 boost的lib,然後直接在網上下載編譯好的 boost lib,有好幾個。

5.把這兩個庫加入到thrift和thriftnb工程里後,就可以進行編譯了。要注意的是,你打開vs後,應該只有一個解決方案,這個解決方案里,有兩個項目,一個是thrift,另一個是thriftnb。編譯時,要對解決方案進行生成,而不是對項目進行生成。如果只對項目進行生成,則可能會造成生成第二個項目時,會把第一個項目產生的lib給刪掉。另一個,thrift有4個版本,win32_debug,win32_debug_mt,x64_release,x64_release_mt,我建議都編譯。最後編譯出來,要用的是lib庫,和用於調試的pdb文件,release版本是沒有也不需要pdb的,只有debug版本才需要pdb.

6.接著談別的語言。由於目前0.9.0並不是正式版本,所以thrift文檔里提到的功能,並不是每一個語言都支持,實際情況是,每一種語言支持的協議和服務端模式都少得可憐。而且有些功能還有bug,比如C++的thrift的保存為文件功能,就有bug。不過通信功能還是沒有問題的。

7.最後需要注意一個地方就是,thrift的string是utf-8的。對於java或c#這種語言,當然不是問題,但c++處理utf-8是有點麻煩的,做過的朋友不怕,沒做過的,可能需要去專門補上幾課:編碼是什麼?如何用vc++處理ansi/寬字元/Unicode/utf-8/utf-16/gbk,以及之間的互相轉換等等,非常麻煩。

8.上面羅嗦了一堆,其實一句話可以解決上面所有問題,就是直接在工作日,在那個群里,多吼幾次,跪求高手的已經搞好的現成的庫、包以及示範工程,這樣就可以節約非常多的時間。同時也感謝那個群里熱心的大牛們,幫我搞通了這些問題。

⑼ libevent 支持udp嗎

1、下載libevent源碼。
2、用VC編譯,一般編譯成靜態的。
3、在項目中配置libevent庫。
4、引用。 你可以按著以上步驟來。應該沒問題。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:705
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:968
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:676
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:828
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:737
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1076
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:308
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:188
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:875
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:829