【发布时间】:2015-01-11 03:55:49
【问题描述】:
有没有办法将 CLion 配置为使用本地 makefile 来编译代码,而不是 CMake?我似乎无法从构建选项中找到方法。
【问题讨论】:
有没有办法将 CLion 配置为使用本地 makefile 来编译代码,而不是 CMake?我似乎无法从构建选项中找到方法。
【问题讨论】:
更新:如果您使用的是 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})
CLion's目录下生成可执行文件这是Makefile的示例:
all:
echo Compiling $(CLION_EXE_DIR)/$@ ...
g++ mytest.cpp -o $(CLION_EXE_DIR)/mytest
就是这样,您可能还想更改程序的工作目录,以便在您从目录中运行 make 时,它会按原样执行。对于此编辑:Run -> Edit Configurations ... -> mytest -> Working directory
【讨论】:
Makefile 和 CMakeLists.txt 后无法构建项目,请尝试修改 *.cpp 文件。这将使 CLion 从头开始构建所有内容。
虽然这是投票最多的feature requests 之一,但Victor Kropp 提供了一个plugin,它增加了对makefile 的支持:
Makefile support plugin for IntelliJ IDEA
你可以直接从官方仓库安装:
设置 > 插件 > 搜索 makefile > 在存储库中搜索 > 安装 > 重新启动
至少有三种不同的运行方式:
它会打开一个名为 Run target 的窗格,其中包含输出。
【讨论】:
binary”最新版本通过compiledb更好地支持任何生成的Makefile
三个步骤:
安装编译的b
pip install compiledb
进行干制作
compiledb -n make
(做自动生成,如果需要配置)
会生成一个compile_commands.json文件 打开项目,您将看到 CLion 将从 json 文件加载信息。 如果您的 CLion 仍然尝试查找 CMakeLists.txt 并且无法读取 compile_commands.json,请尝试删除整个文件夹,重新下载源文件,然后重做第 1、2、3 步
【讨论】:
要完全避免使用 CMAKE,您可以:
像往常一样通过终端使用 Make 构建项目。
更改您的 CLion 配置,转到(在顶部栏中):Run -> Edit Configurations -> yourProjectFolder
将Executable改成Make生成的那个
将Working directory 更改为保存可执行文件的文件夹(如果需要)
删除Before launch:Activate tool window框中的Build任务
一切就绪!您现在可以在手动构建后使用调试按钮。
【讨论】:
目前,CLion 仅支持 CMake。未来会添加其他构建系统,但目前只能使用 CMake。
已经实现了一个导入器工具来帮助您使用 CMake。
编辑:
来源:http://blog.jetbrains.com/clion/2014/09/clion-answers-frequently-asked-questions/
【讨论】:
我对CMake不是很熟悉,无法直接使用Mondkin的方案。
这是我在 CMakeLists.txt 中使用最新版本的 CLion (1.2.4) 和 Windows 上的 MinGW 得出的结果(我想您只需要替换所有内容: g++ mytest.cpp -o bin/mytest by 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 项目相比,这是一个很大的限制...
【讨论】:
set(SOURCE_FILES all_files_here.c) 中,然后在自定义目标之外添加add_executable(foobar_cmake ${SOURCE_FILES}),我能够让 CLion 将我的源文件识别为“活动”。然后只需确保 CLion 设置为构建/运行您的自定义目标,而不是 _cmake 目标。