Game

来自linux中国网wiki
Evan讨论 | 贡献2025年5月15日 (四) 07:42的版本 →‎err
跳到导航 跳到搜索

贪吃蛇

#pre
sudo yum install mesa-libGL-devel

yum install libudev-devel

sudo yum install gcc-c++ cmake make libX11-devel libXrandr-devel \
                 freetype-devel openal-soft-devel libjpeg-turbo-devel \
                 libvorbis-devel flac-devel

wget https://www.sfml-dev.org/files/SFML-2.5.1-sources.zip
unzip SFML-2.5.1-sources.zip
cd SFML-2.5.1

mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make install

sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/sfml.conf'
sudo ldconfig



# 安装依赖(Ubuntu示例)
sudo apt install sfml2.5-dev g++
#代码
https://github.com/evan886/snake_game.git

# 创建构建目录
mkdir build && cd build

# 生成Makefile
cmake .. -DCMAKE_BUILD_TYPE=Release

# 编译
make -j$(nproc)

# 运行
./SnakeGame

err

/usr/bin/ld: 找不到 -lmysqlclient
/usr/bin/ld: 找不到 -lrogame_pb
collect2: 错误:ld 返回 1
make[2]: *** [loginserver/CMakeFiles/loginserver.dir/build.make:1793:bin/loginserver] 错误 1
make[1]: *** [CMakeFiles/Makefile2:595:loginserver/CMakeFiles/loginserver.dir/all] 错误 2


[evan@MengZhan build]$ sudo yum whatprovides libmysqlclient*
上次元数据过期检查:0:03:01 前,执行于 2025年05月15日 星期四 14时57分07秒。
mysql-libs-8.0.26-1.module_el8.4.0+915+de215114.x86_64 : The shared libraries required for MySQL clients
仓库        :AppStream
匹配来源:
提供    : libmysqlclient.so.21()(64bit)
提供    : libmysqlclient.so.21(libmysqlclient_21.0)(64bit)


cmake

[evan@MengZhan build]$ cat  ../CMakeLists.txt 
cmake_minimum_required(VERSION 3.0.2)

PROJECT(SERVER)
set(ccache_file "/usr/local/bin/ccache")
if (EXISTS ${ccache_file})
    message(STATUS "use ccache compiler ${ccache_file}")
    SET(CMAKE_C_COMPILER "ccache")
    SET(CMAKE_C_COMPILER_ARG1 " gcc")
    SET(CMAKE_CXX_COMPILER  "ccache")
    SET(CMAKE_CXX_COMPILER_ARG1 " g++")
endif()
set(CMAKE_CXX_STANDARD 11)

set (CMAKE_MODULE_PATH ${SERVER_SOURCE_DIR}/CMake)
option(USE_TCMALLOC "only build gameserver" OFF)

CMAKE_POLICY(SET CMP0045 OLD)

include(cotire)

SET(EXECUTABLE_OUTPUT_PATH ${SERVER_BINARY_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${SERVER_SOURCE_DIR}/lib)

MESSAGE(STATUS "Server Bin path: ${SERVER_BINARY_DIR}")
MESSAGE(STATUS "Exe path: ${EXECUTABLE_OUTPUT_PATH}")
MESSAGE(STATUS "Src path: ${SERVER_SOURCE_DIR}")

INCLUDE_DIRECTORIES(${SERVER_SOURCE_DIR}/common/include )
INCLUDE_DIRECTORIES(${SERVER_SOURCE_DIR}/common/log )
INCLUDE_DIRECTORIES(${SERVER_SOURCE_DIR}/common/util )
INCLUDE_DIRECTORIES(${SERVER_SOURCE_DIR}/common/network/netproc )
INCLUDE_DIRECTORIES(${SERVER_SOURCE_DIR}/protocol )
INCLUDE_DIRECTORIES(${SERVER_SOURCE_DIR}/thirdparty/protobuf-3.3.x/include )
INCLUDE_DIRECTORIES(${SERVER_SOURCE_DIR}/thirdparty )
INCLUDE_DIRECTORIES(${SERVER_SOURCE_DIR}/thirdparty/apollo_voice_all/include )
INCLUDE_DIRECTORIES(${SERVER_SOURCE_DIR}/share/table )

#默认设置编译器版本为4.8.5
if(NOT DEFINED GCC)
	SET(GCC "4.8.5")
endif()

if(${CMAKE_BUILD_TYPE} MATCHES Release)
    message(STATUS "modify cmake build type to release with debug info")
    SET(CMAKE_BUILD_TYPE RelWithDebInfo)
endif()

LINK_DIRECTORIES( ${SERVER_SOURCE_DIR}/lib )
LINK_DIRECTORIES(${SERVER_SOURCE_DIR}/lib/linux/${GCC})

message(STATUS "set gcc lib path: ${SERVER_SOURCE_DIR}/lib/linux/${GCC}")

#ADD_SUBDIRECTORY(common)
ADD_SUBDIRECTORY(protocol/pb)
option(BUILD_GAME "only build gameserver" OFF)
if(BUILD_GAME)
    message(STATUS "Build gameserver")
    ADD_SUBDIRECTORY(gameserver)
else(BUILD_GAME)
ADD_SUBDIRECTORY(dbserver)
ADD_SUBDIRECTORY(gateserver)
ADD_SUBDIRECTORY(loginserver)
ADD_SUBDIRECTORY(idipserver)
#ADD_SUBDIRECTORY(gmtool)
ADD_SUBDIRECTORY(audioserver)
ADD_SUBDIRECTORY(gameserver)
ADD_SUBDIRECTORY(masterserver)
ADD_SUBDIRECTORY(controlserver)
#ADD_SUBDIRECTORY(centerserver)
#ADD_SUBDIRECTORY(routerserver)
#ADD_SUBDIRECTORY(worldserver)
ADD_SUBDIRECTORY(fmserver)
#ADD_SUBDIRECTORY(versionserver)
#ADD_SUBDIRECTORY(teamserver)
#ADD_SUBDIRECTORY(combinetool)
#ADD_SUBDIRECTORY(proxyserver)
ADD_SUBDIRECTORY(tradeserver)
ADD_SUBDIRECTORY(battleserver)
ADD_SUBDIRECTORY(authserver)
ADD_SUBDIRECTORY(payserver)
ADD_SUBDIRECTORY(rankserver)
endif()


知道整个游戏界面各个按钮什么的对应哪里