Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对CLion而不是CMake使用本地makefile_Makefile_Clion - Fatal编程技术网

对CLion而不是CMake使用本地makefile

对CLion而不是CMake使用本地makefile,makefile,clion,Makefile,Clion,有没有办法将CLion配置为使用本地makefile而不是CMake来编译代码?我似乎无法从构建选项中找到实现它的方法 目前,CLion只支持CMake。其他构建系统将在将来添加,但目前,您只能使用CMake 导入器工具已实现以帮助您使用CMake 编辑: 来源:更新:如果您使用的是CLion 2020.2,那么它已经支持Makefiles。如果您使用的是旧版本,请继续阅读 即使当前只支持CMake,您也可以指示CMake使用自定义的Makefile调用make。编辑CMakeLists.tx

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

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

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

编辑:


来源:

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


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

当您告诉
CLion
运行您的程序时,它将尝试在
PROJECT\u BINARY\u DIR
指向的目录中找到与目标同名的可执行文件。因此,只要您的
make
CLion
期望的位置生成文件,就不会有问题

以下是一个工作示例:

告诉
CLion
将其$(PROJECT\u BINARY\u 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的
目录中生成可执行文件 这是示例
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 by make(如果未使用相同的设置):

自定义Makefile如下所示(它位于我的项目的根目录中,并在bin目录中生成可执行文件):

我能够构建可执行文件,并且可以单击日志窗口中的错误


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

虽然这是投票最多的项目之一,但有一个可用的,通过添加对makefiles的支持:

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

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

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

  • 右键单击makefile并选择运行
  • 在编辑器中打开makefile,将光标放在一个目标上(行上的任意位置),按alt+enter,然后选择maketarget
  • 在目标上按ctrl/cmd+shift+F10(尽管这一个在mac上对我不起作用)

  • 它将打开一个名为“运行目标”的窗格,其中包含输出。

    要完全避免使用CMAKE,您只需:

  • 通过终端,按照正常方式构建项目

  • 更改CLion配置,转到(顶部栏中):
    Run->Edit Configurations->yourProjectFolder

  • 可执行文件更改为使用Make生成的文件

  • 工作目录
    更改为存放可执行文件的文件夹(如果需要)

  • 在启动前:激活工具窗口框中删除
    生成
    任务


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

    最新版本通过compiledb更好地支持任何生成的Makefiles

    pip install compiledb
    
    三个步骤:

  • 安装compiledb

    pip install compiledb
    
  • 干杯

    compiledb -n make 
    
    (进行自动生成,必要时进行配置)

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


  • 原始帖子:

    看到这篇帖子已经发布一个月了,这是唯一的回应,我确信你是正确的,不幸的是……深入挖掘评论的来源,我发现:如果你不想使用cmake怎么办?我还没有尝试过你的上述建议,但是如果我这样做的话,我能在CLion中执行我的C/C++程序吗?(这将使调试过程更加容易。)我验证了@Mondkin的解决方案是有效的。如果在修改
    Makefile
    CMakeLists.txt
    后生成项目时遇到问题,请尝试修改
    *.cpp
    文件。这将使CLion从头开始构建一切。这是可行的,但当我尝试向配置中添加“make clean”时失败了。仅供参考,为了让这项功能正常工作,至少在某些项目上(例如redis),您必须添加一个“ALL”,使其成为:add_custom_target(mytest ALL命令make-C${mytest_SOURCE_DIR}CLion_EXE_DIR=${PROJECT_BINARY_DIR})我应该做些什么改变以使其与gcc for CTH一起工作?这对我来说很有用。我能够让CLion将我的源文件都包含在我的
    集合(source\u files all\u files\u here.c)
    中,然后在自定义目标之外添加
    add\u可执行文件(foobar\u cmake${source\u files})
    ,从而识别出我的源文件是“活动的”。然后只需确保CLion设置为构建/运行您的自定义目标,而不是_cmake。只需一个headup,如果您走这条路线,请确保进入设置->make,并确保将插件指向make的安装目录。默认情况下,它在/usr/bin/makeI中显示。我尝试了您的方法,但这只提供了构建项目的机会,对吗?我无法运行一个bui的应用程序
    compiledb -n make