MonaServer源码的编译安装

周末的时候想吃饺子,媳妇说可以给我包包子,包子馅大,弄起来快。于是去超市买菜买肉,回来和面,洗菜,剁馅,几个小时过后,两个人已经饥饿不堪,才开始准备包,我在厨房烧水准备蒸的时候,听媳妇在屋里哭,进去一问,原来是被自己的包子丑哭了,丑哭了!于是包子变成大饺子……

从下午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

1、解压luajit,编译构建

$unzip ~/luajit-2.0.zip

$cd luajit-2.0

$vim Makefile(修改安装目录,export PREFIX= ~/luajit20),保存退出(:wq)

$make (too young too simple)

$make CC=/home/users/fuchunhui/gcc482/bin/gcc (too
young too simple,too)

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

$make CC=/home/users/fuchunhui/gcc482/bin/gcc(so
good,CC参数,配置自己的gcc路径,别问我怎么知道的,都是泪)

$咔,报错了。什么什么 not a function于是又开启漫长的解决问题之路……你们是幸福的,因为答案在下面

$我是通过Win7下载的.luajit-2.0.4.zip文件,然后通过rz -bye上传到CentOS虚拟机目录,解压安装,这个由Windows到Linux的过程,导致换行编码错误,具体见这里(待补充),我们这样解决:

$find . -type f -print0 | xargs -0 dos2unix
(这鬼问题,谁能想得到,太奇葩,真是历尽千辛万苦)

$make CC=/home/users/fuchunhui/gcc482/bin/gcc(再一次make)

$Complete!

$MonaServer的官方介绍文档说要注释掉DLUAJIT_ENABLE_LUA52COMPAT这一行,在src/Makefile文件内,默认下载的已经被注释过

2、搭建MonaServer服务

$unzip ~/MonaServer-master.zip

$cd MonaServer-master/

$vim Makefile (发现,全是在当前文件下构建,无所谓,忽略这一步),退出

$make prefix=~/MonaServer CC=~/gcc482/bin/g++(too young too naive,报错啦,孩子,竟然告诉老子找不到gcc,妈蛋)

$export PATH=~/gcc482/bin/:$PATH
(经过这么多天的战斗,这都是小事)

$make clean

$make prefix=~/MonaServer CC=~/gcc482/bin/g++(再一次make)(too young too naive,想法简单,安装太混蛋)

$找不到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 这样的错误

$度娘,谷歌上关于解决该错误的文章很多,但都是一个讨论,下载libstdc++6_4.7.2-5_amd64.deb包,解压,拷贝,重新执行。

$经过老衲缜密的分析研究,发现这玩扔咱们自己就有,GCC4.8.2安装编译构建完成的时候就生出来啦

$strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 检查一下系统自带的

$strings ~/gcc482/lib64/libstdc++.so.6 | grep GLIBCXX 检查老衲自己安装的,你会发现,丫的老子有这东西,是系统太傻,不会找

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

$./MonaServer

$Success!

在MonaServer同级目录下增加MonaServer.ini配置文件,可更改服务提供的默认端口,具体见这里(待补充)

后期我会在另外的虚拟机上进行再一次的构建,如果这期间会遇到问题,我会详细记录下来,和大家分享。同时欢迎你留言探讨。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 03:25:55

MonaServer源码的编译安装的相关文章

liunx命令6 vim编辑、压缩命令、rpm、yum及源码包编译安装

[[email protected] ~]# yum install -y vim-enhanced vim打开文件编辑(有颜色) [[email protected] ~]# vim  !$                   //上一条命令的最后一条参数 [[email protected] ~]# vim +10 !$                //打开文件进入第十行 :set number                                 //显示行号 vim 一般模式

源码包编译安装mariaDB

前言 MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统,由于其体积小.速度快.总体拥有成本低,并且之前是完全开源,所以大受欢迎.但由于后面MySQL卖给了SUN,随后SUN被Oracle收购,虽然也有开源免费版本,但是很多功能都需要另外购买商业版本,导致现在MySQL使用份额逐渐减少.所以MariaDB就是因为这种原因诞生出来,成为数据库管理系统是MySQL的一个分支. 先前已经使用二进制安装了mariaDB(详细请查看http://www.178linux.com/8787

源码包编译安装之--实战

最近安装公司安排很多程序让源码安装的活,今天和大家分享一下. 本文就以nginx为例进行源码安装的讲解: 解压: 1.# tar xf nginx-1.4.7.tar.gz{xz|bz2|gz} 2.# cd nginx-1.4.7 ./configure 还需通过许多选项指定编译特性 查看: ./configure--help --prefix=PATH        setinstallation prefix     nginx安装路径 --prefix=PATH        set i

nginx-1.8.0源码包编译安装

nginx源码包编译安装 1.nginx简介 Nginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行. 2.安装nginx时必须先安装相应的编译工具 [[email protected] ~]# yum -y install gcc gcc-c++ autoconf autom

RedHat6.4系统下LAMP环境的搭建---(源码包编译安装)---

(一)httpd(源码包安装) 安装准备: 1 安装htppd软件所依赖的软件包 yum -y install gcc gcc-c++ pcre pcre-devel apr apr-devel apr-util apr-util-devel zlib zlib-devel openssl openssl-devel 安装完成显示如下: Installed: apr.x86_64 0:1.3.9-5.el6_2 apr-devel.x86_64 0:1.3.9-5.el6_2 apr-util.

源码包编译安装过程说明

源码编译安装说明 一.源码包说明        源码包是程序员使用特定的格式和语法所书写的文本代码,一般由英文单词组成.        计算机可以识别的是二进制语言,源码文件要想在linux上运行,必须经过编译后运行. 二.源码包特点: 源码包的优点:        源码包是开源的,可以进行修改发布.安装时,可以选择启用或禁用功能,更加具有灵活性.源码包是编译安装的,更加符合机器的特性,稳定性好. 源码包的缺点:        编译安装的步骤多,需要手动解决软件之间的依赖性,比较繁琐且编译安装时

在Mac OS X 10.10.3下使用源码包编译安装GCC5.1

1.首先去下载gcc5.1源码包:https://gcc.gnu.org/ 2.安装: ./configure(可以在这里设置安装的目录,把所有文件都存放在一个目录下,以后无论是寻找还是删除都很方便,eg: 我的位置:  ./configure –-prefix=/usr/local/gcc5.1_source) gcc5.1_source这个目录需要自己提前新建即可. make(大概花掉4个小时) make install 3.Mac自带的系统里默认把gcc进行软链接clang编译器,而不是真

nginx源码包编译安装

1.到官方站点卸载nginx-1.6.3版本的源码包 http://nginx.org/en/download.html http://nginx.org 2.安装依赖包和编译工具 yum -y install gcc gcc-c++ autoconf automake yum -y install zlib zlib-devel openssl openssl-devel pcre-devel 说明:nginx的重写功能依赖pcre-devel包 2.解压源码包 [[email protect

linux下源码包编译安装LAMP环境

1. 下载所需的源码包 Httpd-2.4.10  apr-1.5.1  apr-util-1.5.3  pcre-8.33(这些均可在Apache官网进行下载) Mysql-5.5.39    php-5.6.0 2. 解压这些压缩包(以上包均为.tar.gz版本的) 使用命令 tar –zxvf 安装包名 –C /usr/local/src (这里统一解压到该目录下) 3. 编译Apache部分 (1).安装apache依赖包pcre # cd ./pcre-8.33 # ./configu