为 CLion 而不是 CMake 使用本地 makefile

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

112825 次浏览

目前,CLion 只支持 CMake。其他构建系统将在未来添加,但是目前只能使用 CMake。

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

编辑:

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

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


即使目前只支持 CMake,您也可以指示 CMake 使用自定义 Makefile调用 make。编辑 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})

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

这是样本 Makefile:

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

这就是全部,你可能还想改变你的程序的工作目录,这样当你在你的目录中运行 make 的时候它就可以按原样执行了。此次编辑: Run -> Edit Configurations ... -> mytest -> Working directory

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

下面是我在 CMakeLists.txt 中使用最新版本的 CLion (1.2.4)和 Windows 上的 MinGW (我想您只需要替换所有: G + + mytest.cpp-o bin/mytest,如果不使用相同的设置,则使用 make) :

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 项目相比,这是一个很大的限制。

虽然这是一个投票最多的 功能要求,有一个 插件,由 Victor Kropp,增加了对 makefile 的支持:

用于 IntelliJ IDEA 的 Makefile 支持插件

安装

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

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

使用

至少有三种不同的跑步方式:

  1. 右键单击 makefile 并选择 快跑
  2. 在编辑器中打开 makefile,将光标放在一个目标上(行上的任何位置) ,按 alt + enter,然后选择 制造「目标」
  3. 在目标上按 ctrl/cmd + shift + F10(尽管这个在 Mac 上不起作用)。

它将打开一个名为 运行 < img src = “ https://www.gnu.org/images/heckert _ gnu.trans.small.png”width = “16”height = “16”> < em > target 的窗格,其中包含输出。

为了完全避免使用 CMAKE,你可以简单地:

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

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

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

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

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

您已经完成了所有的设置! 现在您可以在手动构建之后使用调试按钮。

最新版本更好地支持通过编译 b 生成的任何 Makefile

三步:

  1. 安装已编译的

    pip install compiledb
    
  2. run a dry make

    compiledb -n make
    

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

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

原帖: 使用 CompilationDB 在 CLion 中处理 Makefile