有没有办法配置CLion使用本地makefile来编译代码,而不是CMake?我似乎无法从构建选项中找到方法。
答案 0 :(得分:131)
即使目前仅支持CMake,您也可以指示CMake使用您的自定义make
致电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
目录这是示例Makefile
:
all:
echo Compiling $(CLION_EXE_DIR)/$@ ...
g++ mytest.cpp -o $(CLION_EXE_DIR)/mytest
就是这样,您可能还想更改程序的工作目录,以便在您从目录中运行make时执行它。对于此修改:Run -> Edit Configurations ... -> mytest -> Working directory
答案 1 :(得分:23)
虽然这是投票最多的feature requests之一,但plugin提供了一个Victor Kropp,它增加了对makefile的支持:
Makefile support plugin for IntelliJ IDEA
您可以直接从官方存储库安装:
设置>插件>搜索makefile
>在存储库中搜索>安装>重新启动
至少有三种不同的运行方式:
它会打开一个名为运行 目标 的窗格和输出。
答案 2 :(得分:6)
最新版本可以更好地支持已编译的所有生成的Makefile,
三个步骤:
安装已编译b
pip install compiledb
干干
compiledb -n make
(执行自动生成,必要时进行配置)
将生成一个compile_commands.json文件 打开项目,您将看到CLion将从json文件加载信息。 如果您的CLion仍然尝试找到CMakeLists.txt而无法读取compile_commands.json,请尝试删除整个文件夹,重新下载源文件,然后重做步骤1,2,3
答案 3 :(得分:2)
要完全避免使用CMAKE,您只需:
通常通过终端使用Make来构建项目。
更改CLion配置,转到(在顶部栏中):
Run -> Edit Configurations -> yourProjectFolder
将Executable
更改为使用Make生成的那个
将Working directory
更改为保存可执行文件的文件夹(如果需要)
删除Build
框中的Before launch:Activate tool window
任务
您都准备好了!现在,您可以在手动构建后使用调试按钮。
答案 4 :(得分:1)
目前,CLion仅支持CMake。其他构建系统将在未来添加,但目前,您只能使用CMake。
已实施导入工具以帮助您使用CMake。
修改强>
来源:http://blog.jetbrains.com/clion/2014/09/clion-answers-frequently-asked-questions/
答案 5 :(得分:1)
我对CMake不是很熟悉,也不能直接使用Mondkin的解决方案。
以下是我在CMakeLists.txt中使用最新版本的CLion(1.2.4)和MinGW在Windows上提出的内容(我猜您只需要替换所有内容: 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项目相比这是一个很大的限制......