makefile和bash結合編譯-執行(入門)

有一個test.c的源文件,需要編譯和運行,可以使用如下的Makefile和腳本來進行操作

//test.c

#include <stdio.h>

int main(int argc, char *argv[])

{

  printf("test ....\n");

  return 0;

}


#Makefile

#Makefile腳本

#Makefile腳本的規範,依賴關係,執行命令

test: test.o

   gcc -o test test.o

test.o:test.c

   gcc -o test.o -c test.c


#Bash自動編譯和執行的腳本

#文件名稱:make_run.sh

#----------------------------Bash腳本開始-----------------------------------

#! /bin/bash


#校驗輸入目標是否存在

if [ -z $1 ]

then

 echo "usage: make_run.sh <compile_file>"

 echo "------compile and run-----------"

 exit -1

fi


#如果目標文件(可執行文件)的日期比源文件*.c文件的日期老,或者文件不存在,則重新make編譯生成

cfile="$1.c"

echo "源文件是:$cfile"

if [ $1 -ot $cfile ] || [  -e $1 ]

then

  #編譯目標

 make $1

 #如果目標文件不存在,編譯失敗,則報錯

 if [ ! -e $1 ]

 then

  echo "$1生成失敗"

  exit -2

  #生成成功

 else

    #檢查文件是否具備可執行權限,如果沒有則修改權限

   if [ !  -x $1 ]

   then

     chmod +x $1

   fi

   #編譯執行成功,直接運行目標程序

   ./$1

 fi

fi


#----------------------------Bash腳本結束-----------------------------------







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