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

该脚本文件主要根据程序的扩展名来确定该程序属于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 $*
时间: 2024-08-01 02:46:10

自动化编译C/C++程序脚本的相关文章

linux安装配置apk打包程序gradle+jdk+Android_sdk+python自动化编译脚本

安装gradle: 1.下载gradle包 去这里下载需要的tar.gz包:https://services.gradle.org/distributions/ 2.解压 tar zxvf gradle.tar.gz 3.移动到/usr/local/ mv gradle /usr/local/gradle 4.配置/etc/profile环境变量 vim /etc/profile 添加以下内容 export GRADLE_HOME=/usr/local/gradle export PATH=${

Gradle Android最新自动化编译脚本教程

转自:http://blog.csdn.net/changemyself/article/details/39927381 一.前言 Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自动化构建工具. 上面这句话我觉得写得很官方,大家只需知道Gradle可以用来android开发中进行多个项目依赖的自动化编译脚本,知道这点也就知道我们使用它的目的: 为什么不使用Ant做自动化编译脚本,因为ant上手快,但是维护起来太不方便了,有了Gradle你可

Gradle Android最新自动化编译脚本教程(提供demo源码)

一.前言 Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自动化构建工具. 上面这句话我觉得写得很官方,大家只需知道Gradle可以用来android开发中进行多个项目依赖的自动化编译脚本,知道这点也就知道我们使用它的目的: 为什么不使用Ant做自动化编译脚本,因为ant上手快,但是维护起来太不方便了,有了Gradle你可以跟项目组的同事说,用Ant的孩子们别苦逼的维护了,赶紧换成gradle吧. 本文面向gradle新手或者以前使用过grad

VS2008 自动化编译脚本

可以通过调用MSBuild来使VS2008进行自动化编译. 1.新建文本文件,后缀名改为bat 2.文件内加上: ;转到MSBuild.exe路径 c: cd\ cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 ;调用MSBuild.exe来编译工程 MSBuild D:\Project\Example.sln /t:Rebuild /p:Configuration=Debug ;路径换成工程所在的绝对路径,也可以通过添加环境变量的方式添加相对路径

生成Makefile自动化编译文件

makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率.make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make.可见,makefile都成为了一种在工程方面的编译方法. 那么如何才能生成Makefile文件呢??好吧,让我们一起进入今天的正题吧! 1.首先生成一个目录:mkdi

使用 jenkins 自动化编译cordova for android 生成 APK

引言 前文中已经介绍了什么是cordova 为什么要用cordova,基础的环境搭建以及如何编译打包生成APK安装包,接下来我们介绍如何使用Jenkins 自动化编译打包生成APK安装包! 服务器搭建 在搭建jerkins之前首先需要一台服务器环境,一个虚拟机或者阿里云租一台,这里我以阿里云服务器为例子: 准备一台阿里云服务器:系统为centos docker环境的搭建 准备一台阿里云服务器,准备一个域名指向该服务器,本例暂用 jenkins.zscode.com 不知道如何操作的小伙伴请自行百

Makeflie自动生成依赖,自动化编译

在netbeans里开发,有一个重要文件makefile,是用来编译所有的文件. 项目的目录结构如下,扁平的目录结构,如何实现自动化编译,写makefile呢? 第一版 基础版: CC = g++ CFLAGS = -O3 -DNDEBUG SOURCE =AdaBoost.cpp aodeselect.cpp sample.cpp vfan.cpp kdbext2.cpp tan_gen.cpp petal: ${SOURCE} $(CC) -o [email protected] ${SOU

iOS自动化编译

http://www.cnblogs.com/brycezhang/p/4097487.html 最近研究了一下iOS的自动化编译,目的是为了简化测试和开发的同学沟通协调的次数,实现测试同学可以随时从网页操作编译SVN最新源码并打包ipa进行测试.具体思路是通过从配置文件读取需要编译的项目配置列表展示在网页上,测试同学选择需要编译的项目,确定后将选择项目的相关参数传入shell脚本运行,编译完成自动跳转至下载页面.主要流程包括: Shell脚本的编写.通过xcodebuild和xcrun实现自动

程序脚本

程序脚本 动态程序一般有两种实现方式,一是二进制方式,一是脚本方式. 二进制方式是先将我们编写的程序进行编译,变成机器可识别的指令 代码(如.exe文件),然后再执行.这种编译好的程序我们只能执行. 使用,却看不到他的程序内容.脚本简单地说就是一条条的文字命令, 这些文字命令是我们可以看到的(如可以用记事本打开查看.编辑), 脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机 器可识别的指令,并按程序顺序执行.因为脚本在执行时多了一道翻 译的过程,所以它比二进制程序执行效率要稍低一些.