Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

CLion

CLion is a JetBrains 推出的一款 C++ 集成开发环境(IDE),个人非商业用途可以免费使用。

导入项目

CLion 可以导入项目的编译数据库文件,通常名叫 compile_commands.json。要生成这个编译数据库文件,请打开终端,切换到 Godot 根目录,然后执行:

scons compiledb=yes compile_commands.json

然后,用 CLion 打开 Godot 的根目录,并耐心等待项目完成全部索引。如果发现代码补全、参数信息提示或代码重构等功能没有生效,你就需要用 CMake 重新加载一下项目。具体操作是:找到 platform\android\java\nativeSrcsConfigs 目录下的 CMakeLists.txt 文件,右键点击它,然后选择 Load CMake Project (加载 CMake 项目)。等项目重新加载完毕后,系统会自动添加一个名为 godot 的构建配置。你可以放心地把这个配置删掉,因为这个 CMake 文件本身并不能真正用来编译项目,它仅仅是为了帮助你在 JetBrains 系列 IDE 中正常加载项目而存在的。

备注

Windows 用户:

要想让 compile_commands.json 在 CLion 中正确加载,你必须先为 CLion 配置好 Visual Studio 工具链。

  • 导航到 Preferences > Build, Execution, Deployment > Toolchains

  • 点击 + 按钮,然后选择 Visual Studio

  • CLion 会尝试自动检测你的 Visual Studio 安装情况。如果检测失败,请点击 Toolset: :(工具集)右侧的文件图标,然后手动选择你的 Visual Studio 安装目录。

你可以退出并重新启动 CLion,它将重新加载 compile_commands.json 文件

../../../_images/clion_visual_studio_toolchain.webp

项目的编译与调试

CLion 默认并不支持直接通过 SCons 来编译和调试 Godot。不过,通过在 CLion 中创建自定义构建目标和运行配置,就可以实现这一点。在创建自定义构建目标之前,你必须先在命令行中 compile Godot 一次,以生成 Godot 可执行文件。请打开终端,切换到 Godot 的根目录,然后执行以下命令:

scons dev_build=yes

要添加一个调用 SCons 来进行编译的自定义构建目标:

  • 打开 CLion,然后依次进入 偏好设置 > 构建、执行、部署 > 自定义构建目标(Preferences > Build, Execution, Deployment > Custom Build Targets)

../../../_images/clion-preferences.png
  • 点击 添加目标(Add target),并给这个目标起个名字,比如 Godot debug

../../../_images/clion-target.png
  • 点击 编译(Build) 下拉框旁边的 ... 按钮,然后在弹出的 外部工具(External Tools) 对话框中,点击 + 按钮来添加一个新的外部工具。

../../../_images/clion-external-tools.png
  • 给这个工具起个名字,比如 Build Godot debug ,将 程序(Program) 设置为 scons ,将 参数(Arguments) 设置为你想要的编译选项(具体选项可以查看 compiling Godot),并将 工作目录(Working directory) 设置为 $ProjectFileDir$ ,这就相当于 Godot 的根目录。最后点击 确定(OK) 来创建这个工具。

    备注

    CLion 不会扩展类似 scons -j$(nproc) 这样的 shell 命令。请使用具体的值,例如 scons -j8

../../../_images/clion-create-build-tool.webp
  • 回到 外部工具(External Tools) 对话框,再次点击 + 号,添加第二个外部工具,用于通过 SCons 清理 Godot 的编译文件。给这个工具起个名字,比如 Clean Godot debug ,将 程序(Program) 设置为 scons ,将 参数(Arguments) 设置为 -c (这个参数代表清理编译文件),并将 工作目录(Working directory) 设置为 $ProjectFileDir$ 。最后点击 确定(OK) 来创建这个工具。

../../../_images/clion-create-clean-tool.png
  • 关闭 External Tools(外部工具) 对话框。回到自定义的 Godot debug 编译目标的 Custom Build Target(自定义编译目标) 对话框中,在 Build(编译) 下拉框里选择 Build Godot debug 这个工具,并在 Clean(清理) 下拉框里选择 Clean Godot debug 这个工具。最后点击 OK(确定) 来创建这个自定义编译目标。

../../../_images/clion-select-tools.png
  • 在主 IDE 窗口中,点击 添加配置(Add Configuration)

../../../_images/clion-add-configuration.png
  • 运行/调试配置(Run/Debug Configuration) 对话框中,点击 添加新建...(Add new...),然后选择 自定义构建应用(Custom Build Application) 来创建一个新的自定义运行/调试配置。

../../../_images/clion-add-custom-build-application.png
  • 给这个运行/调试配置起个名字,比如 Godot debug ,然后在 目标(Target) 选项中选择你刚刚创建的 Godot debug 自定义编译目标。将 bin/ 文件夹下的 Godot 可执行文件选为 可执行文件(Executable),并将 程序参数(Program arguments) 设置为 --editor --path path-to-your-project/ ,这里的 path-to-your-project/ 需要替换成你电脑上某个现有 Godot 项目的实际路径。如果你省略了 --path 参数,那么你将只能调试 Godot 的项目管理器(Project Manager)窗口。最后点击 确定(OK) 来创建这个运行/调试配置。

../../../_images/clion-run-configuration.png

现在,你可以通过运行配置(run configuration)来编译、运行、调试、性能分析(profile)以及对 Godot 编辑器进行 Valgrind 检查了。

../../../_images/clion-build-run.png

在运行场景时,Godot编辑器会生成一个独立的进程。可以在 CLion 中调试该进程,方法是选择 Run > Attach to process... ,输入 godot ,然后选择 pid (进程 ID)最大的 Godot 进程,该进程通常是正在运行的项目。

忽略目标文件和库文件

在 CLion 中构建 Godot 后,你可能会看到对象文件和库文件显示在 Project 视图中。

../../../_images/clion-object-library-files-in-project-view.webp

你可以配置 CLion 来忽略这些文件:

  • 打开 CLion 并导航至 Preferences > Editor > File Types > Ignored Files and Folders

  • 点击 + 按钮将 *.o*.a 添加到列表中。在 Windows 上,你需要添加 *.obj*.dll

../../../_images/clion-ignore-object-library-files.webp

现在,Project 视图中应该就会忽略这些文件了。