“Ro”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
第128行: 第128行:
  
 
sudo yum install clang  
 
sudo yum install clang  
 +
 +
 +
[root@s build_linux]# head  /home/evan/may27/rogamelibs/CMakeLists.txt
 +
cmake_minimum_required(VERSION 3.0.2)
 +
 +
project(ROGameLib)
 +
 +
CMake Error: Error in cmake code at
 +
/home/evan/may27/rogamelibs/CMakeLists.txt:1:
 +
Parse error.  Expected a command name, got unquoted argument with text "cmake_minimum_required".
 +
-- Configuring incomplete, errors occurred!
 +
 +
 +
解决
 +
这表明 CMake 在读取 CMakeLists.txt 文件的 第一行 时,发现了一个 无法识别的字符,即:
 +
 +
cmake_minimum_required
 +
 +
这个开头的 ""(U+FEFF) 是 BOM(Byte Order Mark),它在某些文本编辑器(如 Windows 上的 Notepad 或一些 IDE)保存 UTF-8 文件时会自动加上。
 +
 +
解决方法
 +
 +
你需要删除这个 BOM 标记。以下是几种方法:
 +
sed -i '1s/^\xEF\xBB\xBF//' /home/evan/may27/rogamelibs/CMakeLists.txt
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
  

2025年5月27日 (二) 14:51的版本

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 


[root@s build_linux]# head  /home/evan/may27/rogamelibs/CMakeLists.txt
cmake_minimum_required(VERSION 3.0.2)

project(ROGameLib)

CMake Error: Error in cmake code at
/home/evan/may27/rogamelibs/CMakeLists.txt:1:
Parse error.  Expected a command name, got unquoted argument with text "cmake_minimum_required".
-- Configuring incomplete, errors occurred!


解决
这表明 CMake 在读取 CMakeLists.txt 文件的 第一行 时,发现了一个 无法识别的字符,即:

cmake_minimum_required

这个开头的 ""(U+FEFF) 是 BOM(Byte Order Mark),它在某些文本编辑器(如 Windows 上的 Notepad 或一些 IDE)保存 UTF-8 文件时会自动加上。

解决方法

你需要删除这个 BOM 标记。以下是几种方法:
sed -i '1s/^\xEF\xBB\xBF//' /home/evan/may27/rogamelibs/CMakeLists.txt












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]#