宏:makefile/c/java

来源:互联网 发布:hadoop mac和linux 编辑:程序博客网 时间:2024/04/27 23:33

[记录曾经做过的一个项目宏控制]
一套代码做几个项目之类的,特别讨厌了。为了避免干扰,用宏做项目隔离是一个好办法。
下面说一下我曾经实现过的一套方案。

  1. 为不同项目创建宏定义并用特定文件记录
  2. 解析文件并生成环境变量,用于makefile的编译隔离
  3. 生成特定java全局变量,用于java代码隔离
  4. 生成特定h头文件,定义#define,用于c代码隔离

分析:

  1. 为何用文件记录宏?当宏数量越來越多时,用文件记录会更方便。
  2. 如何编译控制?make时先解析宏定义文件,再根据宏值做编译控制。
  3. 为何控制java代码?根据宏值生成相关全局变量的java文件,把java文件编译成jar,在需要控制的java工程中导入jar,根据全局变量执行不同流程。(注:因为是全局变量,代码优化后跟c的宏控制差别不大。)
  4. 为何用h文件控制c代码而不用-D的宏定义?用h文件,可以使c的编译依赖h文件,而h文件可以每次编译新工程是重新生成,从而是c文件重新编译。用-D时如果不清空过程文件,编译新工程可以不会重新编译c文件。

以上。希望对有需要的人有帮助。
BR

0 0
原创粉丝点击