在Linux中一鍵編譯你的C程序

WHAT IS THIS

在linux中,除去IDE外,最常見的就是使用vim編寫c程序,然後用gcc編譯鏈接成可執行文件。這樣的話需要在vim,shell中來回切換,還要輸入gcc不同的參數,比較複雜。所以筆者用一下方法一鍵編譯C程序,在這個過程中也學習makefile的編寫以及腳本的編寫,收穫還是很多的。

第一步:編寫你的makefile

編寫makefile是爲了省去編譯時輸入的gcc參數,讓make進行自動化編譯。具體makefile的作用和用法,再次就不多做介紹。


CFLAGS := -I$(shell pwd) -Wall 
CFLAGS += -O2 
OBJ = $(TARGET).o
OBJ += $(INC:%.h=%.o)
$(TARGET):$(OBJ)
    gcc $(CFLAGS) $(OBJ) -o $(TARGET)

%.o : %.c
    gcc -c $(CFLAGS) $< #-o $@

.PHONY:clean
clean:
    rm -f *.o *.out

makefile的編寫不是本篇的重點,所以就大致說一下該makefile的作用:TARGET是要生成的二進制可執行文件,OBJ是目標文件,INC是可能需要的頭文件,CFLAGS是c編譯器的參數,TARGET、INC由make腳本給出。makefile描述了TARGET是怎麼生成的,以及定義了模式規則。make通過這個makefile,就可以用來編譯一個.c文件。

第二步:編寫Make腳本

Make腳本是方便make編譯。

#!/bin/sh

export TARGET="process_attribute"
echo $TARGET
export INC="Lib.h"
pwd=$PWD

clear
echo "Clean ..."
make clean
echo -e "\nMaking ..."
make
RET=$?

check()
{
    if [ $1 -eq 0 ]
    then
        echo -e "\nMake success !\nExecute the program !\n"
        echo "--------------------------------------------"
    else
        echo -e "\nMake error!\n"
        exit 1
    fi
    return 0
}
check $RET

EXEC=$pwd/$TARGET
$EXEC;
echo "--------------------------------------------"

Make腳本的作用:在Make腳本中設置要編譯的文件,以及所需要的頭文件,然後就可以執行make命令,如果make成功的話,再打印運行結果。

第三步:設置快捷鍵

在VIM中輸入:!就可以執行shell命令,所以如果將Make腳本保存爲”Make.sh”的話,在VIM中輸入”#!./Make.sh”,就可以執行Make腳本了。你還可以將”#!./Make.sh”設置成快捷鍵,那樣的話,直接按快捷鍵就可以直接編譯,是不是有種在IDE中編譯的感覺呢?筆者是在xshell中設置的快捷鍵xshell中快捷鍵配置

第四步:運行結果

這是在vim中執行Make.sh腳本:
這裏寫圖片描述
這是執行腳本的結果:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章