主頁 > 知識(shí)庫 > Gearman::XS在Centos下的編譯安裝方法

Gearman::XS在Centos下的編譯安裝方法

熱門標(biāo)簽:陜西電銷卡外呼系統(tǒng)怎么安裝 地圖標(biāo)注超出范圍怎么辦 excel地址地圖標(biāo)注 佛山高德地圖標(biāo)注中心 東莞電銷機(jī)器人價(jià)格一覽表 旅游地圖標(biāo)注大全 百度地圖標(biāo)注圖標(biāo)更換 百度地圖的地圖標(biāo)注 杭州機(jī)器人外呼系統(tǒng)

本文簡述了Gearman::XS在Centos下編譯安裝方法,供大家參考學(xué)習(xí)一下!

目前Gearman能夠支持各種語言,其官網(wǎng)的描述如下:
 

Language Bindings/Drivers/Frameworks
Select your language – cross links to download section which details all your options.
C, C#/.NET, Go, Java, Lisp, Nodejs, PHP, Perl, Python, Ruby, Database UDFs.

 
個(gè)人嘗試了C、python、perl三種語言的API,感覺perl的API功能相對來說齊全一點(diǎn)。Gearman::XS是perl的開源支持。其鏈接如下:http://search.cpan.org/~krow/Gearman-XS/

在RHEL5.7下安裝的Gearman::XS,中間會(huì)出現(xiàn)各種問題,此處給出這些問題的解決方法供大家參考。

首先,我使用了cpanm來安裝Gearman::XS,結(jié)果如下:

[@localhost yunfei]# cpanm Gearman::XS
--> Working on Gearman::XS
Fetching http://www.cpan.org/authors/id/K/KR/KROW/Gearman-XS-0.15.tar.gz ... OK
Configuring Gearman-XS-0.15 ... OK
Building and testing Gearman-XS-0.15 ... FAIL
! Installing Gearman::XS failed. See /root/.cpanm/work/1392343258.18128/build.log for details. Retry with --force to force install it.

顯然force強(qiáng)制安裝肯定是不行的,所以就找原因。查看 /root/.cpanm/work/1392343258.18128/build.log文件,發(fā)現(xiàn)其中有如下的提示:

gcc -c -Wall -Wundef -Wno-shadow -Wmissing-prototypes -fdiagnostics-show-option -Wformat=2 -Wstrict-aliasing -Wextra -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wno-undef -Wno-unused-value -Wno-unused-variable -Wno-unused-parameter -Wno-format-invalid-specifier -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"0.15\" -DXS_VERSION=\"0.15\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" XS.c
cc1: error: unrecognized command line option "-Wno-format-invalid-specifier"
make: *** [XS.o] Error 1
-> FAIL Installing Gearman::XS failed.

看到是在編譯的時(shí)候出了問題,所以,咱們切換到它的編譯目錄(即 /root/.cpanm/work/1392343258.18128/這個(gè)目錄)

cd /root/.cpanm/work/1392343258.18128/Gearman-XS-0.15

然后執(zhí)行make命令,就可以看到上面報(bào)的編譯錯(cuò)誤了。ok,下面就著手解決它。

vi Makefile

可以找到:

CCFLAGS = -Wall -Wundef -Wno-shadow -Wmissing-prototypes -fdiagnostics-show-option -Wformat=2 -Wstrict-aliasing -Wextra -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wno-undef -Wno-unused-value -Wno-unused-variable -Wno-unused-parameter -Wno-format-invalid-specifier

刪掉最后的“-Wno-format-invalid-specifier”這個(gè)選項(xiàng),然后保存退出,再次執(zhí)行make。
 
會(huì)發(fā)現(xiàn)報(bào)出如下錯(cuò)誤:

In file included from XS.xs:11:
gearman_xs.h:18:36: error: libgearman-1.0/gearman.h: No such file or directory
XS.c: In function 'XS_Gearman__XS_strerror':
XS.c:229: error: 'gearman_return_t' undeclared (first use in this function)
XS.c:229: error: (Each undeclared identifier is reported only once
XS.c:229: error: for each function it appears in.)
XS.c:229: error: expected ';' before 'rc'
XS.xs:82: warning: implicit declaration of function 'gearman_strerror'
XS.xs:82: error: 'rc' undeclared (first use in this function)
XS.xs:82: warning: assignment makes pointer from integer without a cast
make: *** [XS.o] Error 1

很明顯,是找不到gearman.h,也就是說需要gearman-devel,正常情況下通過yum直接安裝gearman-devel包就可以解決這個(gè)問題,但是,我的rhel是手動(dòng)安裝的Gearman-1.1.11版本,和yum安裝的版本不一致,所以,再次打開并修改Makefile。

找到INC以及LDDLFLAGS,修改為如下內(nèi)容:

LDDLFLAGS = -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -L/usr/local/gearman/lib/ -lgearman
 
INC = -I/usr/local/gearman/include/ -L/usr/local/gearman/lib/

可以看到就是加入了Gearman的incule以及l(fā)ib相關(guān)的東西。保存退出Makefile,再次執(zhí)行make,順利通過,然后make install就安裝完畢了。

您可能感興趣的文章:
  • php使用gearman進(jìn)行任務(wù)分發(fā)操作實(shí)例詳解
  • python基于json文件實(shí)現(xiàn)的gearman任務(wù)自動(dòng)重啟代碼實(shí)例
  • gearman中worker常駐后臺(tái),導(dǎo)致MySQL server has gone away的解決方法
  • PHP使用gearman進(jìn)行異步的郵件或短信發(fā)送操作詳解
  • gearman + mysql方式實(shí)現(xiàn)持久化操作示例
  • gearman管理工具GearmanManager的安裝與php使用方法示例
  • PHP并發(fā)多進(jìn)程處理利器Gearman使用介紹
  • gearman隊(duì)列持久化引發(fā)的問題及解決方法
  • gearman的安裝啟動(dòng)及python API使用實(shí)例
  • rhel5.7下安裝gearmand及啟動(dòng)的方法
  • gearman中任務(wù)的優(yōu)先級(jí)和返回狀態(tài)實(shí)例分析

標(biāo)簽:雅安 隨州 西藏 延邊 青島 朝陽 通遼 南充

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Gearman::XS在Centos下的編譯安裝方法》,本文關(guān)鍵詞  Gearman,在,Centos,下,的,編譯,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Gearman::XS在Centos下的編譯安裝方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Gearman::XS在Centos下的編譯安裝方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章