eclipse for C/C++ IDE之Makefile讲解

每天都比较忙,今天抽空讲解下eclipse中Makefile的使用(为何讲解Makefile,主要是因为IDE有了Makefile管理工具才变得非常强大,不会写Makefile的程序员不能称之为合格程序员)

本文内容如下:

1.如何使用eclipse自动生成的Makefile文件

2.如何使用自己写的Makefile文件

下面我们以Windows环境下讲解,Linux下面会更加简单些。

第一步是安装Eclipse for C/C++ IDE ,这个就不说了,安装过程比较可以百度。

第二步安装Mingw32编译器,因为eclipse仅仅只是一个IDE,并不集成编译器。

这里有一篇博客,可以参考https://blog.csdn.net/u013171283/article/details/80898442

第三步安装windows下的make工具,因为在Windows下面大部分用的不是make管理的,因而Windows天生不带make管理工具。

为了方便,我推荐使用CMake工具,下载地址:https://cmake.org/download/

软件非常小,可以默认安装路径,安装好后打开cmd终端,输入make -v,如果输出GUN makea版本,表示安装成功。

第四步(重要的部分):

打开Eclipse for C/C++ IDE,

 

 

 画面干净而又不失强大。

首先新建一个C工程,工程名为hello,新建好了点击hello工程名右键NEW一个新的文件,命名为main.c。保存文件,编写如下程序:

#include "stdio.h"

int main(void)
{
    
    printf("hello eclipse\n");
    return 0;
}

 

 

 如上图所示。此时我们点击“锤子”,会出现如下编译结果,表示编译完成,但为何我们的Makefile没有出现了,奇了怪了,很显然这并不是我想要的结果,别急,下面来设置相关选项。

 

 

 问题出在我们的IDE默认使用的是CDT的make,而且默认不显示出来,因此我们现在打破默认选项。

 

 

 点击project选项下的Propeties(如果发现此选项为灰色不可点击,请双击工程文件名hello再试),

 

 

 点击上图红色框中所指,可以看到默认使用的是CDT Internal builder,我们修改其为gun make,如下图所示

 

然后点击Apply and close

 

 

 

 

 这时我们再次点击“锤子”(即构建),发现在Debug文件夹下生成了一个makefile文件,打开可以看到确实是gun make风格。

 

 为何此时会生成makefile文件呢?其实原因在于IDE修改为外部构建器时,会自动生成相应的makefile文件。

但这里有一个问题,如果我们试图去修改makefile文件,然后再编译,发现会自动还原,这是因为每次编译时都会自动生成makefile文件,因此我们需要设置不让其自动生成makefile文件。

点击project选项下的Propeties(如果发现此选项为灰色不可点击,请双击工程文件名hello再试),点击C/C++ Build选项,去掉下图红色圈中的勾。然后点击Apply and close。

这时我们再修改makefile,然后编译就不会还原了。

 

 

问题来了,那我们如何使用自己写的makefile文件呢?

下面来讲解如何使用自己写的makefile文件。

首先点击Project选项中的clean,删除中间文件和目标文件

 

 然后删除Debug文件夹中的所有文件,在Debug文件夹中新建一个Makefile。注意:这里makefile文件必须新建在Debug文件夹下,否则IDE不识别文件

下面编写一个简单的makefile测试下。

hello.exe:main.o
    gcc  $^  -o  $@
%.o:../%.c
    gcc -c  $<  -o  $@
    
.PHYONE:clean
clean:
    rm -rf *.o  hello.exe

然后编译一下,啊哦,居然报错,我的乖乖(表情包:砸电脑)

 

 从错误提示可以看到没有规则去创建目标文件,其实就是没有写规则,这里问题是因为在eclipse中默认使用的是all目标,现在我们需要自己设置目标。(关于makefile文件的编写,后面有时间会详细写这部分),点击Project选项中的Properies选项。

 

 可以看到默认使用的还是默认的make命令规则,因此我们这里直接修改即可,如下图:

 

 

 点击Apply and colse。

右键工程名,点击Build Targets  -> Create。如下图:

 

 下面添加构建命令

 

 从图中可以看到,蓝色圈中是我们编写makefile的目标,因此我们再新建构建目标时目标名就是我们的makefile文件的目标,可以看到,我们的Makefile文件有两个目标,因此我们需要新建两个构建命令。(同理新建clean)

 

 现在我们直接双击hello.exe就可以构建我们的工程了。

 

 如何运行程序呢?

我们右键工程名,按下图就可以运行结果了

 

 

 

posted @ 2019-09-11 22:10  LSWen  阅读(5145)  评论(0编辑  收藏  举报