Comments (5)
提示 curl 本身不是问题,他可以被解决。
这个地方应该是程序报错崩溃了,这才是我们需要关心的主要原因。
方便提供一下 locale 的返回值么?我想看一下您 linux 系统语言的配置是什么样子的
from pandas.
你好,信息如下:
Linux ubuntu_1804 4.15.0-189-generic #200-Ubuntu SMP Wed Jun 22 19:53:37 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
from pandas.
相同的問題發生在map-server
重現步驟
- Docker build & deploy
將編譯後的可執行檔複製到乾淨容器內deploy
FROM ubuntu:18.04 AS build
WORKDIR /build
RUN apt update -y
RUN apt install make libmysqlclient-dev musl python3-dev build-essential wget -y
RUN wget https://github.com/Kitware/CMake/releases/download/v3.16.0-rc1/cmake-3.16.0-rc1.tar.gz \
&& tar -xzvf cmake-3.16.0-rc1.tar.gz \
&& cd cmake-3.16.0-rc1 \
&& ./bootstrap && make -j4 && make install
COPY 3rdparty ./3rdparty
WORKDIR /build/3rdparty/boost
RUN sh ./bootstrap.sh && ./b2
WORKDIR /build
COPY src ./src
COPY CMakeLists.txt ./
COPY LICENSE ./
WORKDIR /build/cbuild
RUN cmake -G "Unix Makefiles" ..
CMD sh
RUN make
FROM ubuntu:18.04 AS map
WORKDIR /app
COPY --from=build /build/map-server ./
RUN apt update -y
RUN apt install libmysqlclient-dev -y
RUN apt-get clean autoclean && apt-get autoremove -y && rm -rf /var/lib/{apt,dpkg,cache,log}/
ENTRYPOINT ["./map-server"]
錯誤訊息
Failed to open curl lib from binary, use libcurl.so instead
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The program has stopped working. We are very apologetic about this.
We created a crash dump file and written into the following location:
dumps/d0892ce4-4019-415a-68dc57a4-0615b8a7.dmp
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This is a modified version, please analysis the crashdump by yourself.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
操作系統
Docker image : ubuntu:18.04
熊猫模拟器版本号
1.1.16
from pandas.
问题已明确
- rathena 的代码在 gcc 8 之前的版本中工作存在问题
- 更具体的:在解析
txt
的数据文件时,sv_readdb
函数存在兼容问题
- 更具体的:在解析
- ubuntu 18.04 的 build-essential 软件包安装的 gcc 是 7.5 版本,刚好触发了此问题
解决方案
- 至少使用 gcc 8 版本来编译 rathena 或者熊猫模拟器
- 或者使用最低 ubuntu 20.04 作为编译的基础镜像(20.04 的 build-essential 所携带的 gcc 版本更高)
测试通过的方法
apt update -y
apt install gcc-8 g++-8 -y
- 由于
build-essential
默认是 gcc-7 因此安装完成 gcc-8 后,系统默认有两套 gcc 可用;因此我们需要使用update-alternatives
指令来适当的进行默认编译器切换,分别执行(必要时加上 sudo):update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
- 设置好后使用
update-alternatives --config gcc
来选择并设置默认的 gcc 为 8.x 版本
- 设置好默认的 gcc 版本之后,使用
gcc --version
对版本号进行确认 - 若之前编译过,请删掉
cbuild
目录,然后重新编译即可- 提示:重新编译是指重新在工程目录下执行
mkdir cbuild && cmake -G "Unix Makefiles" .. && make
- 提示:重新编译是指重新在工程目录下执行
后续举措
- 我会在熊猫的项目中,对 gcc 和 clang 的最低版本进行限制
- gcc 编译器至少要 8 开头的版本才可以进行编译
- clang 编译器至少要 6 开头的版本才可以进行编译
from pandas.
Docker image : ubuntu:20.04
版本: 1.1.17
測試正常
from pandas.
Related Issues (20)
- 寵物光圈無法出現 HOT 2
- NPC點了就消失 HOT 7
- instancevar 系列指令在副本實例不存在時將導致地圖伺服器崩潰 HOT 1
- 疾風緩存未記錄 ap giveap 等參數 HOT 1
- 運行繁體中文翻譯腳本後,db大量報錯 HOT 3
- Implement Macro Detection Client Interface + Add support for loading captcha images HOT 2
- 希望能扩展CALLSHOP功能 HOT 1
- RELOAD DB的时候,会卡顿几秒 HOT 6
- [Expand/Implement] rentitem/rentitembound 支持多个物品租赁/支持物品绑定租赁
- [Implement] getrandomoptgroup 词条获得
- [Implement] 常见的数组(堆栈)方法
- [Expand] strnpcinfo 支持指定Npc Id HOT 4
- [Expand] convertpcinfo支持离线玩家查询
- [Implement] IgnoreRentWhenConsume 新增物品Flags
- [Implement] 使用DelayConsume类道具时获得所使用道具所在的背包序号
- 希望能保持自動點擊必要技能傳統 HOT 3
- 重現RACN的allow_switch_weapon_when_damage
- 当前版本无法按照使用手册於 Ubuntu 22.04 (Linux) 系统编译熊猫模拟器自带的 Boost Libraries
- Ubuntu 22.04 无法按照官方文件之编译方法生成 makefile 文件 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pandas.