3. 开发环境(C++): Linux + CLion¶
本部分介绍了利用Linux桌面上JetBrains的CLion进行开发的方法。 本指导以 CLion 2017.1.2 版本为标准来制作的。
Tip
CLion也支持Microsoft Visual Studio键映射。
可将 File
-> Settings
-> Keyamp
的 Keymaps
变更为Visual Studio的键映射。
3.1. 创建新项目¶
在终端上输入以下命令,即可创建名为 my_project 的project。
$ funapi_initiator my_project
新创建的项目以后缀名为 ‘-source’ 的目录存在。例如,上述情况下创建的项目名为 my_project-source 。在游戏开发部,可以将该目录放在SVN储存库或 GIT 储存库中,进行共享。
3.2. 创建Clion解决方案文件¶
输入以下内容。
$ my_project-source/setup_build_environment --type=clion
打开已在CLion中新创建的资源目录。
$ clion.sh ~/my_project-source
Note
clion.sh
路径会因CLion的安装位置而不同。
3.3. Clion调试设置¶
为了项目同期化点击左上面
File
菜单里面的Realod CMake Project
。 进行同期化中 IDE 下面表示Indexing ...
或者Building Symbols ...
,Loading Symbols ...
的信息 根据使用中机器的性能,这工作会需要从几秒到几分。
项目同期化结束后在 IDE 菜单右上边生成
Build All
的下拉菜单。 使用这菜单可以修改构造设置或者选择调式/发行设置。 菜单上项目名称的my_project
是调式构造设置,并且my_project (Release)
是发行构造设置。
要程序正常动作,需要设置程序实行参数和设置 LIBRARY(LD_LIBRARY_PATH) 途径 首先在 CLion 选择
Build All
后点击左边的建造按钮和建造程序。 现在通过终端在有建造结果的my_project-build/Debug
目录上进行如下。 从实行结果输出的程序实行参数可能会因项目位置而已。
$ ./my_project-build/Debug/my_project-local --args --main_program_name=my_project_server.default --app_flavor=default --framework_manifest_path=/usr/share/funapi/manifests:/home/ubuntu/my_project-build/Debug/manifests/default --framework_manifest_override_file=/etc/my_project/MANIFEST.override.json --main_enabled_components=my_projectServer --resource_root=/home/ubuntu/my_project-build/Debug/resources --log_root_dir=/home/ubuntu/my_project-build/Debug/logs --crashdump_root_dir=/home/ubuntu/my_project-build/Debug/dumps --max_log_size=10 --alsologtostderr --stop_logging_if_full_diskNote
在这只处理调式设置。 对于发布设置,将其替换为
my_project-build/RelWithDebInfo
而不是my_project-build/Debug
。Note
如果使用 Flavor: 按不同作用来区分服务器 的时候, 在
flavor
适合的local
脚本上输入--args
因素后实行即可。 如果有叫game
的flavor
的话,根据以下进行。$ ./my_project-build/Debug/my_project.game-local --args --main_program_name=my_project_server.game --app_flavor=game --framework_manifest_path=/usr/share/funapi/manifests:/home/ubuntu/my_project-build/Debug/manifests/game --framework_manifest_override_file=/etc/my_project/MANIFEST.game.override.json --main_enabled_components=MyProjectServer --resource_root=/home/ubuntu/my_project-build/Debug/resources --log_root_dir=/home/ubuntu/my_project-build/Debug/logs --crashdump_root_dir=/home/ubuntu/my_project-build/Debug/dumps --max_log_size=10 --alsologtostderr --stop_logging_if_full_disk
在菜单里从
Run
移动到Edit Configuration
。 然后,把通过上面的指令得到的结果在my_project
的Program arguments
项目添加如下。
LD_LIBRARY_PATH 的形式一定要像以下一样。 根据项目位置,路径会改变。
LD_LIBRARY_PATH=/home/ubuntu/my_project-build/Debug/src:/usr/lib:/usr/local/lib:/usr/lib/mariadb:/usr/lib64/mariadbs把在
Environment variables
右边的...
点击后,设置如下图即可。![]()
所有的设置结束后,为了 CLion 认识书库,像下面图一样把
External Libraries
右键点击后再点击Realod CMake Project
。
3.5. 在Clion中打包游戏¶
当不选择 Build All
,而是选择 Package
时,即可在 my_project-build/Debug
目录下生成将游戏服务器捆绑成package的文件。具体的打包内容请参考:ref:packaging 。
Tip
选择 Package (Release)
,即会在 my_project-build/RelWithDebInfo
下创建发布build专用package。