用Boost的Wave库进行C++源文件的预处理(Boost Wave C++ 预处理)

7 篇文章 0 订阅

最近无聊,看看Boost里有啥好东西,翻到了Wave库,发现有个趣的东西,Wave库自身就是为C++的预处理而设计的,其中Wave库的例子里面有一个用Wave实现的C++的预处理器,这是个好东西,可以用命令行进行C++的预处理了。这个例子不再boost/wave里面,而是%boost_Root%/tools/wave里面的所有文件,把它拷贝到VS的一个命令行Exe的工程里面,直接编译即可。

偶编译成了一个wave.exe。下面需要一些设置就可以用他进行预处理了。

wave.exe支持一个配置文件和命令,首先需要写一个配置文件:

test.cfg文件内容:

###########test.cfg文件内容:################################

#一个时间记录看看wave处理需要的时间,可有可无
--timer
#System Path这个很重要下面-S后的是我的VC++的和windos sdk的include目录;-I是项目的include目录,根据你的情况修改
-S"C:/Program Files/Microsoft SDKs/Windows/v6.0A/Include"
-S"C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/include"
-S"E:/Dev_Libs/lib_scr/boost_1_44_0"
-I"C:/Users/Aquarius/Documents/Visual Studio 2008/Projects/Wave/Wave/testfiles/Xavier"


#AUTO OUTPUT -E是自动生成“.i”的预处理文件(就是把你的XXX.cpp源文件处理后的结果放在一个XXX.i的文件里面)
-E

#C++1999标准的支持
--c99

#生成几个txt文件记录预处理过程中生成的宏,include的头文件等
-g g_o.txt
-c c_o.txt
-l l_o.txt
-m m_o.txt
-t t_o.txt

 

#-P是预定义几个宏,我是用wave模拟VC++2008 所以要有几个VC的预定义宏

#不知道你的编译器需要哪些预定义宏的可以参考http://predef.sourceforge.net/index.php

#预定义宏很重要,设置不好预处理会通不过

-P __cplusplus=199901L
-P __cplusplus_cli=200406L
-P _WINDOWS
-P _WIN32
-P WIN32

-P _DEBUG
-P _M_IX86=400
-P _MSC_VER=1500
-P _MSC_FULL_VER=150021022

############test.cfg文件内容:#################################

 

还要一个windows的批处理文件 test.bat 来运行wave

:::::::::test.bat :::::::::::::::

@echo off

::显示wave版本
wave.exe -v

::@test.cfg  是告诉wave配置文件名(配置文件前腰加@) 后面Xavier/tree/xtree_node.cpp

::是我的一个源文件的路径,这个自己改

wave.exe @test.cfg  Xavier/tree/xtree_node.cpp
@pause

:::::::::test.bat :::::::::::::::

 

好了吧wave.exe test.cfg test.bat 和你要处理的源文件放在一个目录里,运行test.bat就OK了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值