cloudwu/skynet

安装失败,怎么解决?

deachiy123 opened this issue · 4 comments

cc -std=gnu99 -O2 -Wall -Wextra -DLUA_USE_LINUX -I../../skynet-src -g -c -o lfunc.o lfunc.c
cc -std=gnu99 -O2 -Wall -Wextra -DLUA_USE_LINUX -I../../skynet-src -g -c -o lgc.o lgc.c
cc -std=gnu99 -O2 -Wall -Wextra -DLUA_USE_LINUX -I../../skynet-src -g -c llex.c
cc -std=gnu99 -O2 -Wall -Wextra -DLUA_USE_LINUX -I../../skynet-src -g -c -o lmem.o lmem.c
cc -std=gnu99 -O2 -Wall -Wextra -DLUA_USE_LINUX -I../../skynet-src -g -c -o lobject.o lobject.c
cc -std=gnu99 -O2 -Wall -Wextra -DLUA_USE_LINUX -I../../skynet-src -g -c -o lopcodes.o lopcodes.c
cc -std=gnu99 -O2 -Wall -Wextra -DLUA_USE_LINUX -I../../skynet-src -g -c lparser.c
cc -std=gnu99 -O2 -Wall -Wextra -DLUA_USE_LINUX -I../../skynet-src -g -c -o lstate.o lstate.c
cc -std=gnu99 -O2 -Wall -Wextra -DLUA_USE_LINUX -I../../skynet-src -g -c -o lstring.o lstring.c
In file included from lstring.c:23:0:
../../skynet-src/atomic.h:33:23: fatal error: stdatomic.h: No such file or directory
#include <stdatomic.h>
^
compilation terminated.
make[4]: *** [lstring.o] Error 1
make[4]: Leaving directory /data/skynet/3rd/lua' make[3]: *** [linux-noreadline] Error 2 make[3]: Leaving directory /data/skynet/3rd/lua'
make[2]: *** [3rd/lua/liblua.a] Error 2
make[2]: Leaving directory /data/skynet' make[1]: *** [linux] Error 2 make[1]: Leaving directory /data/skynet'
make: *** [default] Error 2

请升级gcc

gcc版本过低的原因

安装指定或最新版本的GCC(必须5.0以上)
yum install centos-release-scl -y
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++
scl enable devtoolset-9 bash # 临时gcc版本
echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc # 永久gcc版本

我先按照https://github.com/cloudwu/skynet/wiki/Build#%E7%BC%96%E8%AF%91-compiling
“skynet 所有代码以及引用的第三方库都可以被支持 C99 的编译器编译。所以你需要先安装 gcc 4.9 及以上版本”
将gcc从4.8升到4.9,编译一样报错
之后我直接升到gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)
编译通过 make[1]: Leaving directory '/home/jay/dev/game-server/skynet'
希望对你有帮助