164

有没有办法将 CLion 配置为使用本地 makefile 来编译代码,而不是 CMake?我似乎无法从构建选项中找到方法。

4

6 回答 6

154

更新:如果您使用的是 CLion 2020.2,那么它已经支持 Makefile。如果您使用的是旧版本,请继续阅读。


即使目前仅支持 CMake,您也可以指示 CMakemake使用您的自定义Makefile. 编辑您CMakeLists.txt添加以下两个命令之一:

当您告诉CLion运行程序时,它会尝试在PROJECT_BINARY_DIR. 因此,只要您make在期望的位置生成文件CLion,就没有问题。

这是一个工作示例:

告诉CLion将其 $(PROJECT_BINARY_DIR) 传递给make

这是示例CMakeLists.txt

cmake_minimum_required(VERSION 2.8.4)
project(mytest)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

add_custom_target(mytest COMMAND make -C ${mytest_SOURCE_DIR}
                         CLION_EXE_DIR=${PROJECT_BINARY_DIR})

CLion's告诉 make 在目录中生成可执行文件

这是示例Makefile

all:
    echo Compiling $(CLION_EXE_DIR)/$@ ...
    g++ mytest.cpp -o $(CLION_EXE_DIR)/mytest

就是这样,您可能还想更改程序的工作目录,以便在您从目录中运行 make 时它按原样执行。对于此编辑:Run -> Edit Configurations ... -> mytest -> Working directory

于 2015-01-09T23:51:25.440 回答
35

虽然这是投票最多的功能请求之一,但Victor Kropp提供了一个插件,它增加了对 makefile 的支持:

IntelliJ IDEA 的 Makefile 支持插件

安装

您可以直接从官方存储库安装:

设置 > 插件 > 搜索makefile> 在存储库中搜索 > 安装 > 重新启动

采用

至少有三种不同的运行方式:

  1. 右键单击生成文件并选择运行
  2. 在编辑器中打开生成文件,将光标放在一个目标上(行中的任何位置),点击alt+ enter,然后选择make target
  3. 在目标上点击ctrl/ cmd++ (虽然这个在mac上对我不起作用)shiftF10

它会打开一个名为Run target的窗格,其中包含输出。

于 2017-10-31T12:57:44.623 回答
8

最新版本通过compiledb对任何生成的Makefile都有更好的支持

三个步骤:

  1. 安装编译

    pip install compiledb
    
  2. 干制

    compiledb -n make 
    

    (做自动生成,如果需要配置)

  3. 将生成一个 compile_commands.json 文件打开项目,您将看到 CLion 将从 json 文件加载信息。如果您的 CLion 仍然尝试查找 CMakeLists.txt 并且无法读取 compile_commands.json,请尝试删除整个文件夹,重新下载源文件,然后重做步骤 1、2、3

原始帖子:使用编译数据库在 CLion 中处理 Makefile

于 2018-10-01T22:14:16.153 回答
5

要完全避免使用 CMAKE,您可以简单地:

  1. 像往常一样通过终端使用 Make 构建您的项目。

  2. 更改您的 CLion 配置,转到(在顶部栏中):
    Run -> Edit Configurations -> yourProjectFolder

  3. 将 更改为Executable使用 Make 生成的

  4. 更改为Working directory保存可执行文件的文件夹(如果需要)

  5. 删除框中的Build任务Before launch:Activate tool window

你都准备好了!您现在可以在手动构建后使用调试按钮。

于 2018-07-17T02:16:27.637 回答
1

目前,CLion 仅支持 CMake。将来会添加其他构建系统,但目前您只能使用 CMake。

已实现导入器工具来帮助您使用 CMake。

编辑:

资料来源:http ://blog.jetbrains.com/clion/2014/09/clion-answers-frequently-asked-questions/

于 2014-12-18T14:17:39.870 回答
1

我对 CMake 不是很熟悉,不能直接使用 Mondkin 的解决方案。

这是我在我的 CMakeLists.txt 中使用最新版本的 CLion (1.2.4) 和 Windows 上的 MinGW 得出的内容(我想你只需要全部替换:g++ mytest.cpp -o bin/mytest by make if您没有使用相同的设置):

cmake_minimum_required(VERSION 3.3)
project(mytest)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

add_custom_target(mytest ALL COMMAND mingw32-make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})

而自定义的 Makefile 是这样的(它位于我项目的根目录,并在 bin 目录中生成可执行文件):

all:
    g++ mytest.cpp -o bin/mytest

我能够构建可执行文件并且日志窗口中的错误是可点击的。

IDE 中的提示非常有限,与纯 CMake 项目相比,这是一个很大的限制......

于 2016-01-13T13:26:09.660 回答