Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11970
  • 博文数量: 2
  • 博客积分: 50
  • 博客等级: 民兵
  • 技术积分: 25
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-09 13:11
文章分类
文章存档

2011年(2)

我的朋友

分类: LINUX

2011-12-24 10:50:39

公司有个c语言头文件转Asn.1的工具对宏定义很感冒,老是找不到一些复杂定义的宏值。正考虑用gcc来帮忙处理一下。
首先是一个递归copy被引用的头文件到工作目录下的脚本getAllHeader.sh

  1. #!/bin/bash
  2. echo $1 | \
  3. awk -F "/" '{
  4.     cmd = "\
  5.          if ! [ -e "$NF" ];\
  6.          then echo "$NF";\
  7.          cp "$0" ./;\
  8.          fi;\
  9.     ";
  10.      system(cmd);
  11. }'
  12. cat $1 | \
  13. grep \#include | \
  14. #grep -v ^[\ \    ]*// | \
  15. #grep -v ^[\ \    ]*/\* | \
  16. #grep ^[\ \    ]\#include[\ \    ]*\".*\" | \
  17. awk -F"\"" '{
  18.     cmd="find ./ -name "$2" -exec ./getAllHeader.sh {} \\; -quit";
  19.     system(cmd);
  20. }'
第二个调用Gcc作处理pp.sh
  1. #!/bin/bash
  2. ./getAllHeader.sh $1
  3. gcc -E -C -P $1 > result.h
就这么多啦!!
还有批处理功能和其它细节到公司针对实际情况再写!!!
阅读(520) | 评论(0) | 转发(0) |
0

上一篇:转载:ANTLR生成C++描述的分析程序

下一篇:没有了

给主人留下些什么吧!~~