Makefile 项目
在 CLion 中对 Makefile 项目的全面支持仍在进行中。 使用链接到 CPP-494 的工单留下您的反馈并为所需功能投票。
打开一个 Makefile 项目
为已打开的项目加载一个 Makefile
您还可以将项目作为文件夹打开,并稍后加载 Makefile 。 例如,如果您的项目需要某些预配置步骤或运行脚本以准备最终的 Makefile,而在 CLion 中打开项目时尚未准备好,这将非常有用。
准备好后,要加载 Makefile ,请在编辑器中打开它并点击通知中的 加载 Makefile 项目 链接:

或者,使用项目树中文件上下文菜单中的 加载 Makefile 项目 操作。
配置自动重新加载
默认情况下,CLion 不会自动更新或重新加载您的项目,除非发生外部事件(如 VCS 更新)。 您可以在 构建工具 设置中更改此行为。
转到 。
选择一个自动重新加载选项:

任何更改 - 在 Makefile 中的任何更改时触发项目重新加载。
外部更改 (默认)- 您的项目仅在外部事件(如 VCS 更新)时重新加载。 如果发生其他更改(例如,添加新文件),您将在 Makefile 上收到通知:

手动重新加载
除了自动选项,您还可以手动重新加载项目:
从主菜单中的 调用 或 。
或者,在构建工具窗口中点击
或
:

调整项目设置
使用 对话框控制您的项目设置。

工具链
在这里,您可以选择用于加载 Makefile 项目的工具链。
请注意,NMake 当前不受支持 ,因此您无法直接使用 Visual Studio 工具链。 要使用它,您需要使用 GNU Make 单独构建项目。
如果您选择的工具链包含非默认编译器(在 C 编译器 和 C++ 编译器 字段中显式配置),它们也会传递到
make。构建选项
在此字段中,您可以为项目构建提供额外的 make 选项。 这些选项不会影响项目重新加载。
命令
在此字段中,您可以调整预配置参数。 请参阅 预配置(GNU Autoconf)。
参数
这些参数由 CLion 在调用
make命令时使用,用于提取项目信息、清理项目或搜索构建目标。构建目标 和 清理目标
这些目标与
make命令一起使用,以提取项目信息。 如果您将 构建目标 字段留空,CLion 将采用项目顶层 Makefile 中指定的第一个目标。此外,这里指定的目标在您从 构建操作 菜单调用 构建项目 或 重新构建项目 时也会使用。
您可以从 构建 工具窗口快速访问 Makefile 设置对话框。 从上下文菜单中选择 Makefile 设置 或点击 :

高级设置
更多 Makefile 项目的设置可在 中找到:

运行/调试 Makefile 应用程序
CLion 会为顶层 Makefile 中的每个目标自动创建一个 Native Application 配置:

在创建配置时,CLion 会过滤掉以下目标:
clean目标。与对象文件 ( .o ) 对应的目标。
以未知文件扩展名结尾的目标(例如, .d )。
您可以自定义自动创建的配置,或在 对话框中创建新配置(见下文)。
创建一个 Native Application 配置
运行一个 Native Application 配置
在切换器中选择所需的配置,然后使用以下选项之一:
点击
。
按下 Shift+F10。
请选择 从主菜单。
调试一个 Native Application 配置
在开始调试会话之前,请确保在 配置 中指定的二进制文件包含调试符号。
在切换器中选择所需的配置,然后使用以下选项之一:
点击
工具栏。
按下 Shift+F9。
从主菜单中选择 。
运行 Makefile 目标
您可以使用边栏菜单快速为特定目标调用 make:

或者,您可以从 生成 工具窗口 () 运行目标。 双击一个目标或选择它,然后点击 :

执行任何这些操作后,CLion 会创建一个 临时配置 ,类型为 Makefile Target。 您可以自定义它,或在 对话框中基于相同模板创建新的配置(见下文)。
创建一个 Makefile Target 配置
在主菜单中,转到 ,点击
,然后从模板列表中选择 Makefile 目标:

在设置中,您可以设置多个目标以运行,提供额外的参数,并根据需要调整其他参数。 有关更多信息,请参阅 参考页面。

请点击 Apply 以保存更改。
WSL 特性
同步设置
在使用 WSL 时,请确保同步每个项目的工具链设置和全局 生成 设置:
转到 。
点击 Make 可执行文件的路径 旁边的选择器,并设置 WSL 的
make路径:
非 root WSL 用户
如果您在非 root WSL 用户下工作,则应将此用户设置为默认用户,以便拥有 make 进程及其可能创建的所有文件的所有权。
在您的 WSL 客户端中创建一个 /etc/wsl.conf 文件,并添加以下行:
[user] default=username这里,
username是 WSL 客户端用户名(可能与 Windows 用户名不同)。在 WSL 文档 中了解更多信息。
重启 WSL 机器。
故障排除
确保启用了 Makefile 和 Makefile 语言 插件。 检查 已安装 选项卡中的 。

如果您的项目未正确加载,请尝试以下提示:
检查 Makefile 设置:
请确保选择适当的工具链。 您的项目应在所选环境中成功构建。
参数 和 构建目标 可能需要根据您的项目进行调整。
从主菜单中调用 或在构建工具窗口中点击
。
如果您的项目的 Makefile 是由 Premake 生成的,请尝试从根 Makefile 中移除
--no-print-directory参数。如果上述方法均无效,请尝试从系统目录中的 /makefiles 清理项目缓存(例如, ~/Library/Caches/JetBrains/CLion2020.2/makefiles/postgrtipes.dc29ef09 ),然后 重新加载 项目。





