linux编程加入编译时间,关于如何在make一个Linux下的C/C++工程时,自动添加版本号、编译日期等信息-Go语言中文社区...

本篇的目的:在makefile里,将系统当前的时间传递进待编译的C/C++工程中,用以指示编译执行的时间,以及版本信息等。

不多说了,先来看效果:

当前时间:2017.01.20  0:29

93799

编译完成后运行效果:

93799ubuntu@ubuntu:~/Desktop/ccc$ ./test 

============================

Soft version:V1.01

compile date:2017.01.20  0:29

============================

。。。。。。

过了8分钟后,再次编译运行:

93799ubuntu@ubuntu:~/Desktop/ccc$ ./build.sh 

rm -f auto_version.h test main.o

Build start...

`touch auto_version.h`

cc    -c -o main.o main.c

gcc main.o auto_version.h -o test

Build OK

ubuntu@ubuntu:~/Desktop/ccc$

ubuntu@ubuntu:~/Desktop/ccc$

ubuntu@ubuntu:~/Desktop/ccc$ ./test

============================

Soft version:V1.01

compile date:2017.01.20  0:37

============================

注意时间变化。

下面贴代码:

这就是关于如何make一个Linux下的C/C++工程时,自动添加版本号、编译日期等信息:

//main.c

#include

#include "auto_version.h"

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

{

#ifdef VER_AUTO

printf("============================n");

printf("Soft version:%sn",VERSION);

printf("compile date:%sn",DATE);

printf("============================n");

#else

printf("============================n");

printf("creat by ZhongKunjiangn");

printf("mail:zhongkunjiang@hotmail.comn");

printf("============================n");

#endif

return 0;

}

//Makefile

VERSION_STRING := "V1.01"

DATE_STRING := `date "+20%y.%m.%d %k:%M"`

.PHONY:all

all:test

test:main.o auto_version.h

gcc $^ -o $@

main.o:main.c auto_version.h

auto_version.h:

`touch auto_version.h`

@echo "#define VER_AUTO 1" > auto_version.h # > :覆盖文本原来内容

@echo "#define VERSION "$(VERSION_STRING)"" >> auto_version.h # >> :追加内容到文本末尾

@echo "#define DATE "$(DATE_STRING)"">> auto_version.h # >> :追加内容到文本末尾

clean:

rm -f auto_version.h test main.o

//build.sh

set -e #告诉bash如果任何语句的执行结果不是true则退出

make clean

echo -e "e[36m""Build start...""e[m" # "e[36m" :设置打印颜色,"e[m" :清除打印颜色

make all

echo -e "e[36m""Build OK""e[m"

接下来,chmod +x build.sh

执行 ./build.sh

编译成功。

运行./test

即可看到如上效果

93799

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值