PandasWS / Pandas

熊猫模拟器 - 基于 rAthena 构建的中文仙境传说模拟器(欢迎加入QQ交流群:928171346)
https://pandas.ws
GNU General Public License v3.0
7 stars 2 forks source link

文件中没有configure,按照rAthena教程无法编译 #222

Open OrionChang opened 4 years ago

OrionChang commented 4 years ago

请问该如何在Ubuntu下编译这个服务端

CairoLee commented 4 years ago

使用 CMake 方式进行编译,你的Ubuntu 是哪个发行版?

OrionChang commented 4 years ago

18.04

CairoLee commented 4 years ago

好的,晚些我整理一份操作手册出来

CairoLee commented 4 years ago

Ubuntu 18.04 编译 Pandas 模拟器

系统环境

使用 docker 下的 ubuntu:18.04 镜像

更新 apt-get 相关的数据源

安装 git

安装 git-lfs

安装 gcc 编译器

安装 wget 等一些辅助工具

安装 cmake 3.16 版本


克隆 Pandas 模拟器代码

安装 Pandas 模拟器的依赖库

编译 Pandas 模拟器自带的 Boost 库

开始编译 Pandas

CairoLee commented 4 years ago

可以试试看~ 有问题随时联系。 目前已知在编译地图服务器的时候,有一处警告:

/root/Pandas/src/map/script.cpp:4621:8: warning: extra tokens at end of #endif directive [-Wendif-labels]
 #endif Pandas_ScriptCommand_SelfDeletion
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我将会在下一个版本修正它,这并不影响我们的使用

CairoLee commented 4 years ago

请问还有其他问题么? 或者是上述的流程是否能够帮你完成编译? 如果没有问题的话,麻烦说一声哈,感谢~

ovao0802 commented 4 years ago

感謝教學~~ 我是初學者~ 但無意間發現了熊貓模擬器~ 覺得可以從此模擬器入手探討~ 希望是好的開始

flufy3d commented 4 years ago

太好了 我就说 怎么 linux下的编译脚本都删除掉了

flufy3d commented 4 years ago

希望能把这个更新到文档区

flufy3d commented 4 years ago

整理了下 这些命令就可以了 准备做一个dockefile 方便部署

apt install libmysqlclient-dev zlib1g-dev libpcre3-dev cmake -y git clone https://github.com/PandasWS/Pandas.git cd ~/Pandas cd 3rdparty/boost/ bash bootstrap.sh ./b2 cd .. mkdir build cd build cmake -G "Unix Makefiles" .. make -j4

flufy3d commented 4 years ago

但是编译完成后 执行程序 遇到下列错误 root@dev-server:~/Pandas# ./login-server Floating point exception (core dumped)

测试平台1 ubuntu 20.04 + gcc 9.3.0 测试平台2 ubuntu 18.04 + gcc 7.5.0

原版rathena 可以编译通过正常运行

gdb 调试信息 Starting program: /root/Pandas/login-server [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGFPE, Arithmetic exception. 0x00005555557fd5fb in std::detail::_Mod_range_hashing::operator() ( this=0x555555b87cf8 <translate_db+88>, num=10983096385041811433, __den=0) at /usr/include/c++/9/bits/hashtable_policy.h:433 433 { return num % den; }

CairoLee commented 4 years ago

@flufy3d 你在崩溃的环境下执行一下 locale 回车,我看下内容~ 是 zh-TW.utf8 么?

flufy3d commented 4 years ago

不是 是 C.utf8

CairoLee commented 2 years ago

@flufy3d 请问此问题后来解决了嘛?