3. 开发环境(C++): Linux + CLion

本部分介绍了利用Linux桌面上JetBrains的CLion进行开发的方法。 本指导以 CLion 2017.1.2 版本为标准来制作的。

Tip

CLion也支持Microsoft Visual Studio键映射。 可将 File -> Settings -> KeyampKeymaps 变更为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调试设置

  1. 为了项目同期化点击左上面 File 菜单里面的 Realod CMake Project 。 进行同期化中 IDE 下面表示 Indexing ... 或者 Building Symbols ...Loading Symbols ... 的信息 根据使用中机器的性能,这工作会需要从几秒到几分。

_images/clion-1.png
  1. 项目同期化结束后在 IDE 菜单右上边生成 Build All 的下拉菜单。 使用这菜单可以修改构造设置或者选择调式/发行设置。 菜单上项目名称的 my_project 是调式构造设置,并且 my_project (Release) 是发行构造设置。

_images/clion-2.png
  1. 要程序正常动作,需要设置程序实行参数和设置 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_disk

Note

在这只处理调式设置。 对于发布设置,将其替换为 my_project-build/RelWithDebInfo 而不是 my_project-build/Debug

Note

如果使用 Flavor: 按不同作用来区分服务器 的时候, 在 flavor 适合的 local 脚本上输入 --args 因素后实行即可。 如果有叫 gameflavor 的话,根据以下进行。

$ ./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
  1. 在菜单里从 Run 移动到 Edit Configuration 。 然后,把通过上面的指令得到的结果在 my_projectProgram arguments 项目添加如下。

_images/clion-3.png
  1. 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 右边的 ... 点击后,设置如下图即可。

_images/clion-4.png
  1. 所有的设置结束后,为了 CLion 认识书库,像下面图一样把 External Libraries 右键点击后再点击 Realod CMake Project

_images/clion-5.png

3.4. 在CLion中调试

指定断点后点击 Debug 后可以进行调式。如果调式不正常进行的话,请您再确认书库路径(LD_LIBRARY_PATH)设置是否正常。

_images/clion-6.png

3.5. 在Clion中打包游戏

当不选择 Build All ,而是选择 Package 时,即可在 my_project-build/Debug 目录下生成将游戏服务器捆绑成package的文件。具体的打包内容请参考:ref:packaging

_images/clion-2.png

Tip

选择 Package (Release) ,即会在 my_project-build/RelWithDebInfo 下创建发布build专用package。