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中設置的快捷鍵
第四步:運行結果
這是在vim中執行Make.sh腳本:
這是執行腳本的結果: