完全支持在CLion中的Makefile项目仍在不断完善中。如果您希望获得所需功能,请使用与C++-494相关联的工单来提供反馈并投票支持。

打开Makefile项目

  1. 从主菜单中选择“文件 | 打开”。
  2. 指向包含顶级Makefile的文件夹,或直接指向该文件:
    1.png
  3. 在弹出的对话框中,点击“以项目方式打开”。
    2.png
  4. 您将被提示清理项目:
    3.png

    • 项目加载需要进行清理,因为Make构建是增量的,只会编译已更新的文件。如果在未清理的项目上运行,重新加载将会忽略所有未更改的文件,可能会出现错误。
    • 如果希望在加载时不进行清理,请取消选中“清理项目”复选框。您稍后可以手动清理和重新加载项目(例如,在执行所需的引导操作后)。
  5. 此时,CLion开始加载项目,将进度和状态显示在构建工具窗口中:
    4.png

在此过程中可能会出现警告消息,但如果加载完成后项目名称旁边出现了绿色的勾号 成功加载指示器,这表示加载成功。

在已打开的项目中加载Makefile

您还可以将项目以文件夹形式打开,并稍后加载Makefile。这在某些情况下很有帮助,例如,如果您的项目需要进行一些预配置步骤或启动脚本以准备最终的Makefile,这时在CLion中打开项目时还没有它。

当准备好加载Makefile时,在编辑器中打开它,然后单击通知中的“加载Makefile项目”链接:

5.png

或者,从项目树中的文件上下文菜单中使用“加载Makefile项目”操作。

在使用版本控制系统(VCS)管理Makefile项目时,请考虑不要共享.iml文件,因为它会在导入时重新生成。

配置自动重新加载

默认情况下,CLion不会自动更新或重新加载项目,除非出现外部事件,例如VCS更新。您可以在“设置 | 构建、执行、部署 | 构建工具”中更改此行为。

  1. 转到“设置 | 构建、执行、部署 | 构建工具”。
  2. 选择以下自动重新加载选项之一:
    6.png

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

此设置是针对每个项目的。自动重新加载选项应为您的每个Makefile、编译数据库或Gradle项目单独配置。

手动重新加载

除了自动选项外,您还可以手动重新加载项目:

  • 从主菜单中选择“工具 | Makefile”中的“重新加载Makefile项目”或“清理并重新加载Makefile项目”。
    8.png
  • 或者,在构建工具窗口中,单击 重新加载图标清理并重新加载图标
    9.png

您的项目可能还需要在修改后执行./configure步骤,以获取更新的Makefiles。

调整项目设置

使用“设置 | 构建、执行、部署 | Makefile”对话框来控制您的项目设置。

10.png

  • 工具链
    在这里,您可以选择用于加载Makefile项目的工具链。

     注意,NMake目前不受支持,因此您不能直接使用Visual Studio工具链。要使用它,您需要单独使用GNU Make构建项目。
     如果您选择的工具链包含非默认编译器(在C编译器和C++编译器字段中明确配置),它们也将传递给`make`。
    

有关Windows的详细信息:

  • 您的Makefile可能包含工具的完整路径。在这种情况下,请确保选择具有相同路径的相应工具链。
  • 在使用MinGW工具链时,检查路径是否不包含空格。如有必要,使用~符号,例如 C:PROGRA~1mingw-w64...
  • 构建选项
    在此字段中,您可以为项目构建提供附加的make选项。这些选项不会影响项目重新加载。
  • 命令
    在此字段中,您可以调整预配置参数。
  • 参数
    当CLion在提取项目信息、清理项目或搜索构建目标的步骤中调用make命令时,将使用这些参数。
  • 构建目标和清理目标
    这些目标与make命令一起用于提取项目信息。如果将构建目标字段留空,CLion将采用项目顶级Makefile中指定的第一个目标。

此外,这些目标在您从构建操作菜单中调用“构建项目”或“重新构建项目”时也会被使用。

您可以从构建工具窗口中快速访问Makefile设置对话框。从上下文菜单中选择“Makefile设置”或点击 设置图标

11.png

高级设置

有关Makefile项目的更多设置可以在“设置 | 高级设置”中找到:

12.png

运行/调试Makefile应用程序

CLion会自动为顶级Makefile中的每个目标创建一个Makefile应用程序配置:

13.png

在创建配置时,CLion会过滤掉以下目标:

  • clean目标。
  • 与目标(.o)文件对应的目标。
  • 以未知文件扩展名结尾的目标(例如,.d)。

您可以自定义自动创建的配置,或者在“运行 | 编辑配置”对话框中创建新配置(如下所述)。

创建Makefile应用程序配置

  1. 转到“运行 | 编辑配置”,点击 添加图标,然后从模板列表中选择“Makefile应用程序”:
    14.png
  2. 在“目标”字段中,您可以选择检测到的目标之一:
    15.png

    • 另一个选项是使用类型为Make的自定义构建目标。点击“目标”字段旁边的 设置图标,添加一个新的Make目标(点击 添加图标),然后填写参数:
      16.png
  3. 在“可执行文件”字段中,提供二进制文件的完整路径。

    如果计划调试应用程序,请确保二进制文件包含调试符号。例如,您可以在Makefile中的CXXFLAGS中添加-g

    • 要在远程上运行/调试,请提供远程机器上二进制文件的路径。注意,需要手动设置远程路径。
  4. Makefile应用程序模板的其他设置在参考页面中有描述。

运行Makefile应用程序配置

在切换器中选择所需的配置,然后使用以下选项之一:

  • 点击 运行按钮
  • 按下Shift + F10
  • 从主菜单中选择“运行 | 运行所选配置”。

调试Makefile应用程序配置

在开始调试会话之前,请确保配置中指定的二进制文件包含调试符号。

在切换器中选择所需的配置,然后使用以下选项之一:

  • 点击工具栏上的 调试按钮
  • 按下Shift + F9
  • 从主菜单中选择“运行 | 调试所选配置”。

运行Makefile目标

您可以使用装订线菜单快速调用特定目标的make命令:

17.png

或者,您可以从Make工具窗口(查看 | 工具窗口 | make)中运行目标。双击目标,或者选择它然后点击 执行图标

18.png

执行任何这些操作时,CLion都会创建一个临时配置,类型为Makefile目标。您可以在“运行 | 编辑配置”对话框中自定义它,或者从同一模板创建新配置(如下所述)。

创建Makefile目标配置

  • 转到“运行 | 编辑配置”,点击 添加图标,然后从模板列表中选择“Makefile目标”:
    19.png
  • 在设置中,您可以设置要运行的多个目标,提供附加参数,并根据需要调整其他参数。
    20.png
  • 与Makefile应用程序不同,Makefile目标配置使用“设置 | 构建、执行、部署 | 构建工具 | Make”中的“Path to Make executable”无论当前选定的工具链如何,都会使用。
  • 无法在远程或Docker工具链中使用Makefile目标配置。请参阅下文以了解WSL的详细信息。

WSL特定事项

同步设置

在使用WSL时,请确保同步项目特定的工具链设置和全局Make设置:

  1. 转到“设置 | 构建、执行、部署 | 构建工具 | Make”。
  2. 点击“Path to Make executable”旁边的选择器,并设置为WSL的make路径:
    21.png

非根WSL用户

如果在非根WSL用户下工作,则应将此用户设置为默认用户,以便拥有make进程和它可能创建的所有文件。

  1. 在WSL guest中创建一个/etc/wsl.conf文件,并添加以下行:

    [user]
    default=username
     在这里,`username`是WSL guest用户名(可能与Windows用户名不同)。
    
  2. 重启WSL会话以使更改生效。

问题和限制

虽然CLion支持Makefile项目,但请注意以下问题和限制:

  • 不支持使用NMake。
  • 不支持具有空格的路径或文件名。
  • Makefile中使用的变量可能无法在CLion中正确解析。
  • 在某些情况下,Makefile项目的代码分析可能会出现问题。
  • 对于更复杂的项目,可能需要使用自定义CMake配置来实现更好的集成。

标签: clion破解, clion破解教程, clion教程, clion基础教程, clion高级教程, clion核心教程, clion免费激活码, clion免费注册码, clion注册码在线生成, clion激活