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就可以構建我們的工程了。

 

 如何運行程序呢?

我們右鍵工程名,按下圖就可以運行結果了

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM