码迷,mamicode.com
首页 > 编程语言 > 详细

自动化编译C/C++程序脚本

时间:2016-04-04 13:24:46      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:自动化编译   c++   c   脚本   shell   

        该脚本文件主要根据程序的扩展名来确定该程序属于C程序还是C++程序,然后根据不同情况,使用gcc或者g++编译器编译该程序。

  

#!/bin/bash

# =====================================
# Author : Anna
# exit_code :
# 2 -> Invalid Usage;
# 3 -> not a source code file
# =====================================

fileName=$1
option="$* -g -lpthread"
outFileName=`echo $fileName | cut -d. -f1`

AnalyseFile(){
if ! file $fileName | grep "ASCII" &> /dev/null;then
    echo -e "\033[31m<$fileName> is not a ASCII file.\033[0m"
    exit 3
fi
}

function ComplieFile {
if echo $fileName | egrep ".*.cc|cpp\>" &> /dev/null;then
    CC=g++
    echo -e "\033[34m========================   C++_program Compling  =====================       \033[0m"
elif echo $fileName | grep ".*.c\>" &> /dev/null;then
    CC=gcc
    echo -e "\033[35m========================   C_program Compling    = ====================      \033[0m"
fi
$CC $option -o $outFileName
}

function PrintResult {
if [ $? -eq 0 ];then 
    echo -e "\033[33m             Congratulation! Complie successfully ^-^! \033[0m"
    echo -e "\033[32m             `date`\033[0m"
else
    echo -e "\033[31m             ERROR $CC -o $outfilename $option\033[0m"
fi
}

main(){
if [ $# -le 0 ];then
    echo -e "\033[31mUsage : $0 <program-file>\033[0m"
    exit 2;
fi
AnalyseFile $*
ComplieFile $*
PrintResult
}
main $*


 

 

本文出自 “11219885” 博客,转载请与作者联系!

自动化编译C/C++程序脚本

标签:自动化编译   c++   c   脚本   shell   

原文地址:http://11229885.blog.51cto.com/11219885/1760026

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!