“Ro”的版本间的差异
跳到导航
跳到搜索
第122行: | 第122行: | ||
<pre> | <pre> | ||
os: centos8 | os: centos8 | ||
+ | |||
+ | |||
+ | ro1 ->rogamelibs build一下 may 27 2025 | ||
2025年5月27日 (二) 14:14的版本
I just add some extra steps in the previous guide. This is for 20gb version, not sure if it works for big one. I just start learning c++ recently, so maybe some steps are not ideal, and some steps may miss as well, just let me know. I will try to help. ## 2. Install compilation tools -cmake(>3.0.2) -g++ (I'm using 9.2) -redis (I'm using 6.2.7) -mysql (I have mysql installed previously, so if below step is not correct, just google it) ## 3. Connect resources 好像没有 cofig 这个目录吧 may 26 2025 - copy config, rogamelibs, roserver to your server root (not root folder) - cd roserver - open 111.sh, change icc_path to your g++ path, in my case, it is /usr/local/bin - go to "/roserver/exe/gsconf", delete all folders except "script" and "serveronly", by doing this, we can link those folders from config folder with next step - run ./111.sh /config ## 4. Install and compile dependent software - Install mysql-devel, mysql version ```sh yum install mysql-devel yum install mysql-community-server.x86_64 ``` ## 5. Compile server if you see "make -jx" especially "make -j128" in below sh files, just change it to "make -j<nb of your cpu core>" - in /roserver/thirdparty, compile and install liboauth-0.9.4 and libevhtp-1.2.10 - build librogamelibs.a open /rogamelibs/buildtool/build_linux.sh change icc_path change cmake command to below "cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/LINUX.cmake -DCMAKE_BUILD_TYPE=Debug -DGCC=9.2.0 -DGCOV=Off -DASAN=Off -DLSAN=Off -DCMAKE_C_COMPILER=$icc_path/gcc -DCMAKE_CXX_COMPILER=$icc_path/g++ ../.." then run build_linux.sh - build libconfiglib.a # bu ro1 没这个目录 open /rogamelibs/table/buildtool/build_linux.sh change icc_path change cmake command to below "cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/LINUX.cmake -DCMAKE_C_COMPILER=$icc_path/gcc -DCMAKE_CXX_COMPILER=$icc_path/g++ ../.." then run build_linux.sh - go to /roserver/lib, check both librogamelibs.a and libconfiglib.a link to correct files - cd /roserver/Build/Debug - run "make" to build all servers, or you can go to each server folder, then build it one by one - Comment out the files that are not found in the code (Be patient, it is not too many) ## 6. Configure mysql - Start mysql - Run the .sql files under /roserver/exe/sql/create_sql and update_sql - Add a piece of server information to the gateinfo table under database login (Example server_id channel state is_open server_name zone_name ipaddr free_ipaddr register_account online_role open_time full_register_time combine_serverid 1 1 1 1 mzx sywc your_server_ip:10110 0 0 2024-04-15 08:00:00 2024-04-15 08:00:00 0) - **Possible problems:** - (1) mysql cannot be started The error message is that there is already a file in a certain folder. Modify the path pointed to by data in /etc/my.cnf. - (2) mysql query and modify the initial password query and modify ```sh grep "temporary password" /var/log/mysqld.log mysqladmin -u root -p oldpasswd password newpasswd ``` - (3) Timestamp default value invalid when running .sql The most direct way to modify sql_mode ```sh set sql_mode=''; ``` ## 7. Configure redis - configure your redis in /roserver/exe/gsconf/serveronly/game_redis_conf.json ## 8. Generate and modify the server configuration file - copy my conf.zip file, then unzip to /roserver/Build/Debug/bin - Modify the xml files of each server in roserver/Build/Debug/bin/conf. Fill in the mysql account password database information. If you want to start multiple gameservers, copy gs_conf.xml and modify the line information in it. - copy my run_server_command.zip, then replace start,status and stop with my ones ## 9. Open port for 25009 (default 25001 client port not work for me, no idea why) and 10110 (gate), ## 10. Install screen ## 11. Start the server ```sh cd ./Build/Debug/bin ./start [any name] ``` screen related commands ```sh screen -ls //View started servers screen -r [server name] //Switch to each server window to ensure there are no errors First ctrl+A and then D to exit the screen ``` 2024-04-18 Update: 1. change 3 version numbers in "/roserver/exe/loginconf/version.txt" to "0.2.0.1" (this is client version number) 2. Missing files like below. You can copy from big zip ("Ro\rogamelibs\include\aidebug" and "Ro\rogamelibs\aidebug") or use my attachment. Comment out "shared_data.SerializeToPb" errors ICP7}LB0KTL5)6PDD(PRG{9.jpg 3. in /roserver/thirdparty, compile and install liboauth-0.9.4 and libevhtp-1.2.10 4. update step 3 ##my err evan@s217-14 buildtool]$ ./build_linux.sh -- compiler with develop -- ASAN=On compiler with -fsanitize=address -- Debug -- CMake Error at CMakeLists.txt:163 (LIST): LIST sub-command REMOVE_ITEM requires two or more arguments. -- Server Add Files!! -- Configuring incomplete, errors occurred! See also "/home/evan/rogamelibs/buildtool/build_linux/CMakeFiles/CMakeOutput.log". make: *** 没有指明目标并且找不到 makefile。 停止。 make build_linux error!
err
build lib
os: centos8 ro1 ->rogamelibs build一下 may 27 2025 sudo yum install clang make 不过 [root@localhost buildtool]# ./build_linux.sh [ 21%] Building CXX object CMakeFiles/rogamelibs.dir/table_manager/entity_type_table_mgr.cpp.o [ 21%] Building CXX object CMakeFiles/rogamelibs.dir/table_manager/equip_map_string_int_mgr.cpp.o /home/evan/rogamelibs/table_manager/entity_table_manager.cpp: In member function 'virtual bool ROGameLibs::EntityTableManager::Init()': /home/evan/rogamelibs/table_manager/entity_table_manager.cpp:88:33: error: 'class TableLib::EntityHandBookTable::RowData' has no member named 'RelationEntityId' if (!book_row_data->RelationEntityId().empty()) ^~~~~~~~~~~~~~~~ /home/evan/rogamelibs/table_manager/entity_table_manager.cpp:90:50: error: 'class TableLib::EntityHandBookTable::RowData' has no member named 'RelationEntityId' for (int32_t id : book_row_data->RelationEntityId()) ^~~~~~~~~~~~~~~~ [ 22%] Building CXX object CMakeFiles/rogamelibs.dir/table_manager/guild_hunt_table_manager.cpp.o [ 22%] Building CXX object CMakeFiles/rogamelibs.dir/table_manager/gvg_quest_table_manager.cpp.o make[2]: *** [CMakeFiles/rogamelibs.dir/build.make:2316: CMakeFiles/rogamelibs.dir/table_manager/entity_table_manager.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/rogamelibs.dir/all] Error 2 make: *** [Makefile:91: all] Error 2 make build_linux error! [root@localhost buildtool]# bash build_linux_release.sh [ 1%] Building CXX object CMakeFiles/rogamelibs_release.dir/table_manager/mercenary_table_mgr.cpp.o /home/evan/rogamelibs/table_manager/entity_table_manager.cpp: In member function 'virtual bool ROGameLibs::EntityTableManager::Init()': /home/evan/rogamelibs/table_manager/entity_table_manager.cpp:88:33: error: 'class TableLib::EntityHandBookTable::RowData' has no member named 'RelationEntityId' if (!book_row_data->RelationEntityId().empty()) ^~~~~~~~~~~~~~~~ /home/evan/rogamelibs/table_manager/entity_table_manager.cpp:90:50: error: 'class TableLib::EntityHandBookTable::RowData' has no member named 'RelationEntityId' for (int32_t id : book_row_data->RelationEntityId()) ^~~~~~~~~~~~~~~~ make[2]: *** [CMakeFiles/rogamelibs_release.dir/build.make:2316: CMakeFiles/rogamelibs_release.dir/table_manager/entity_table_manager.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/rogamelibs_release.dir/all] Error 2 make: *** [Makefile:91: all] Error 2 成功了在table里面的脚本 [root@localhost buildtool]# pwd /home/evan/rogamelibs/table/buildtool dos2unix buildtool/build_linux.sh ./build_linux.sh -- Build files have been written to: /home/evan/rogamelibs/table/buildtool/build_linux Consolidate compiler generated dependencies of target configlib [100%] Built target configlib make build_linux success!
other
[ 0%] Building CXX object CMakeFiles/rogamelibs.dir/ai/event_channel/ai_event_channel.cpp.o [ 0%] Building CXX object CMakeFiles/rogamelibs.dir/ai/event_channel/ai_eventchannel_handler.cpp.o [ 1%] Building CXX object CMakeFiles/rogamelibs.dir/ai/ai_online_debug_manager.cpp.o [ 2%] Building CXX object CMakeFiles/rogamelibs.dir/ai/event_channel/ai_eventchannel_handler_monster.cpp.o /home/evan/rogamelibs/ai/ai_node_copy_myself.cpp:1:10: 致命错误:rocommongamelibs/utility/object_pool/object_pool.h:没有那个文件或目录 #include "rocommongamelibs/utility/object_pool/object_pool.h" ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 编译中断。 make[2]: *** [CMakeFiles/rogamelibs.dir/build.make:90:CMakeFiles/rogamelibs.dir/ai/ai_node_copy_myself.cpp.o] 错误 1 make[2]: *** 正在等待未完成的任务.... In file included from /home/evan/rogamelibs/./ai/event_channel/scene_event_weather.h:3, from /home/evan/rogamelibs/ai/event_channel/ai_event_channel.cpp:1: /home/evan/rogamelibs/./core/timer_manager.h:7:10: 致命错误:utility/delegate.h:没有那个文件或目录 #include "utility/delegate.h" ^~~~~~~~~~~~~~~~~~~~ 编译中断。 make[2]: *** [CMakeFiles/rogamelibs.dir/build.make:146:CMakeFiles/rogamelibs.dir/ai/event_channel/ai_event_channel.cpp.o] 错误 1 In file included from /home/evan/rogamelibs/ai/ai_node_factory.cpp:1: /home/evan/rogamelibs/./ai/ai_node_factory.h:6:10: 致命错误:rocommongamelibs/utility/singleton.h:没有那个文件或目录 #include "rocommongamelibs/utility/singleton.h" ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 编译中断。 make[2]: *** [CMakeFiles/rogamelibs.dir/build.make:104:CMakeFiles/rogamelibs.dir/ai/ai_node_factory.cpp.o] 错误 1 In file included from /home/evan/rogamelibs/ai/event_channel/ai_eventchannel_handler.cpp:2: /home/evan/rogamelibs/./core/event/event.h:8:10: 致命错误:utility/utiltool.h:没有那个文件或目录 #include "utility/utiltool.h" ^~~~~~~~~~~~~~~~~~~~ 编译中断。 In file included from /home/evan/rogamelibs/./ai/event_channel/ai_eventchannel_handler_monster.h:7, from /home/evan/rogamelibs/ai/event_channel/ai_eventchannel_handler_monster.cpp:1: /home/evan/rogamelibs/./core/event/event.h:8:10: 致命错误:utility/utiltool.h:没有那个文件或目录 #include "utility/utiltool.h" ^~~~~~~~~~~~~~~~~~~~ 编译中断。 /home/evan/rogamelibs/ai/ai_tree_manager.cpp:4:10: 致命错误:utility/common.h:没有那个文件或目录 #include "utility/common.h" ^~~~~~~~~~~~~~~~~~ 编译中断。 make[2]: *** [CMakeFiles/rogamelibs.dir/build.make:160:CMakeFiles/rogamelibs.dir/ai/event_channel/ai_eventchannel_handler.cpp.o] 错误 1 make[2]: *** [CMakeFiles/rogamelibs.dir/build.make:132:CMakeFiles/rogamelibs.dir/ai/ai_tree_manager.cpp.o] 错误 1 make[2]: *** [CMakeFiles/rogamelibs.dir/build.make:174:CMakeFiles/rogamelibs.dir/ai/event_channel/ai_eventchannel_handler_monster.cpp.o] 错误 1 In file included from /home/evan/rogamelibs/ai/ai_online_debug_manager.cpp:3: /home/evan/rogamelibs/./ai/ai_online_debug_manager.h:8:10: 致命错误:thirdparty/tinyxml2/tinyxml2.h:没有那个文件或目录 #include "thirdparty/tinyxml2/tinyxml2.h" ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 编译中断。 make[2]: *** [CMakeFiles/rogamelibs.dir/build.make:118:CMakeFiles/rogamelibs.dir/ai/ai_online_debug_manager.cpp.o] 错误 1 In file included from /home/evan/rogamelibs/./ai/nodes/ai_node.h:7, from /home/evan/rogamelibs/./ai/ai_behavior_tree.h:4, from /home/evan/rogamelibs/ai/ai_behavior_tree.cpp:1: /home/evan/rogamelibs/./ai/shared_data.h:11:10: 致命错误:rocommongamelibs/utility/math/vector3.h:没有那个文件或目录 #include "rocommongamelibs/utility/math/vector3.h" ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 编译中断。 make[2]: *** [CMakeFiles/rogamelibs.dir/build.make:76:CMakeFiles/rogamelibs.dir/ai/ai_behavior_tree.cpp.o] 错误 1 make[1]: *** [CMakeFiles/Makefile2:83:CMakeFiles/rogamelibs.dir/all] 错误 2 make: *** [Makefile:91:all] 错误 2 make build_linux error! [root@MengZhan buildtool]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) [root@MengZhan buildtool]#