MonaServer原始碼的編譯安裝

2021-07-03 13:22:08 字數 2992 閱讀 4921

週末的時候想吃餃子,媳婦說可以給我包包子,包子餡大,弄起來快。於是去超市買菜買肉,回來和面,洗菜,剁餡,幾個小時過後,兩個人已經飢餓不堪,才開始準備包,我在廚房燒水準備蒸的時候,聽媳婦在屋裡哭,進去一問,原來是被自己的包子醜哭了,醜哭了!於是包子變成大餃子……

從下午18點開始準備,一直到晚上23點收拾完畢,還好是週六,雖然累,但幸福。這就好像我想要搭建monaserver的伺服器,但使用的虛擬機器告訴我系統預設支援gcc3.4.6版本,不支援更高版本一樣,需要我自己準備安裝gcc,準備luajit,然後構建monaserver,倖倖苦苦累了一天到下班才搞定gcc的安裝,於是加班加點弄好了luajit,而我想要的monaserver還沒開始,真真整整正正是「行百步者半九十」的道理,所以我們要不忘初心,堅持下去,最終就會吃到美美的大餃子。

………………………………分界線………………………………

上一遍介紹了關於gcc4.8.2的安裝,這一篇我們開始搭建monaserver伺服器,先從其依賴的luajit(2.0.4)開始說起。

準備好monaserver-master.zip 和luajit-2.0.zip(推薦選擇.gz包)

1、解壓luajit,編譯構建

$unzip ~/luajit-2.0.zip

$cd luajit-2.0

$vim makefile(修改安裝目錄,export prefix= ~/luajit20),儲存退出(:wq)

$make (too young too ******)

$make cc=~/gcc482/bin/gcc (too young too ******,too)

$export ld_library_path=$ld_library_path:~/gcclib/gmp432/lib:~/gcclib/mpfr242/lib:~/gcclib/mpc081/lib

$make cc=~/gcc482/bin/gcc(so good,cc引數,配置自己的gcc路徑,別問我怎麼知道的,都是淚)

$咔,報錯了。什麼什麼 not a function於是又開啟漫長的解決問題之路……你們是幸福的,因為答案在下面

$find . -type f -print0 | xargs -0 dos2unix(這鬼問題,誰能想得到,太奇葩,真是歷盡千辛萬苦)

$make cc=~/gcc482/bin/gcc(再一次make)

$complete!

2、搭建monaserver服務

$unzip ~/monaserver-master.zip 

$cd monaserver-master/

$vim makefile (仔細閱讀發現,是在當前檔案下構建,可忽略這一步),退出

$make prefix=~/monaserver cc=~/gcc482/bin/g++(too young too *****,報錯啦,竟然告訴老子找不到gcc,媽蛋)

$export path=~/gcc482/bin/:$path(經過這麼久的戰鬥,這都是小事)

$make clean

$make prefix=~/monaserver cc=~/gcc482/bin/g++(再一次make)(too young too *****,想法簡單,安裝太混蛋)

$找不到lua.h,找不到標頭檔案的錯誤簡直很白痴,不是已經安裝了嘛,怎麼會找不到呢!!

$vim monaserver/sources/script.h(修改引用的位址為~/luajit20/include/luajit-2.0/lua.h and lauxlib.h,根據自己的實際安裝位置修改)

$vim monaserver/sources/script.cpp(同上)

$make clean

$make prefix=~/monaserver cc=~/gcc482/bin/g++(開開心心再一次make)

$你們都懂的,肯定會報錯的。cannot find -lluajit-5.1編譯過程沒錯,建立可執行檔案的時出錯。(艱苦的學習.so/lib*.so/ld/ldd)

$知道了ld -l 作用以及-l作用之後,問題迎刃而解,並在~/luajit20/lib下面找到的libluajit-5.1.so檔案

$vim ~/monaserver-master/monaserver/makefile 

$在第10行的位置加上粗體部分libdirs+=-l./../monabase/lib/ -l./../monacore/lib/-l./../../luajit20/lib(具體目錄路徑,自定義,別搞錯層次)

$make clean

$make prefix=~/monaserver cc=~/gcc482/bin/g++(心事重重又來一次make)

$complete!

$找到編譯構建後的monaserver資料夾,執行./monaserver(開心並不是能持續很久的……)

$被告知/usr/lib64/libstdc++.so.6: version `glibcxx_3.4.19' not found 這樣的錯誤

包,解壓,拷貝,重新執行。

$經過老衲縝密的分析研究,發現這玩扔咱們有,gcc4.8.2安裝編譯構建完成的時就生出來啦

$strings /usr/lib64/libstdc++.so.6 | grep glibcxx 檢查一下系統自帶的glibc

$strings ~/gcc482/lib64/libstdc++.so.6 | grep glibcxx 檢查老衲自己安裝的,你會發現,丫的老子有這東西,是系統太傻,不會找嘛

$export ld_library_path=$ld_library_path:~/gcc482/lib64/

$./monaserver

$success!

在monaserver同級目錄下增加monaserver.ini配置檔案,可更改服務提供的預設埠,具體monaserver使用配置。

mysql原始碼編譯表 MySQL原始碼編譯安裝

1 安裝cmake 2.8.10.2.tar.gz 以root使用者進入shell tar zxvf cmake 2.8.10.2.tar.gz cd cmake 2.8.10.2 configure make 無法make,檢測gcc編譯環境 make install 2 安裝ncurses 5....

linphone iphone最新原始碼編譯

編譯 之前,肯定是先clone最新 git clone recursive更新完後發現跟原來的編譯方式有了比較大的區別,更新完後編譯步驟更清晰,更方便.可以執行.prepare.py help 檢視幫助 開始配置前,請使用.prepare.py c清理上一次編譯結果 csrutil disable,...

vertx原始碼 vert x web的原始碼解析

本來應該要寫的是eventbus的原始碼分析的,但是vert.x中國使用者組 群號 515203212 的小夥伴們好像對vert.x web深入了解的需求更大一些。所以就先分析vert.x web的實現原理吧。分析完之後發現篇幅較長,請耐心看完。vert.x web主要的功能是路由,還有常用的htt...