是否有独立的C ++预处理器?我不需要编译器/链接器,我无法安装完整的工具包。
我希望能够使用一些定义并包含我提供的路径来获取某些标头的预处理版本。
编辑:我不能依赖任何可用的东西。没有 cl ,没有 gcc ,没有。至少我需要做的是处理宏(特别是#ifdef和#if)。
编辑:我在Windows XP计算机上使用它。答案 0 :(得分:8)
cpp是你正在寻找的。我不确定它是否可以在gcc发布之外获得,但
CPP(1) GNU CPP(1)
NAME
cpp - The C Preprocessor
SYNOPSIS
cpp [-Dmacro[=defn]...] [-Umacro]
[-Idir...] [-Wwarn...]
[-M|-MM] [-MG] [-MF filename]
[-MP] [-MQ target...]
[-MT target...]
[-P] [-fno-working-directory]
[-x language] [-std=standard]
infile outfile
Only the most useful options are listed here; see below for the remainder.
DESCRIPTION
The C preprocessor, often known as cpp, is a macro processor that is used automatically by the C compiler to transform your program before
compilation. It is called a macro processor because it allows you to define macros, which are brief abbreviations for longer constructs.
答案 1 :(得分:6)
您可能需要查看Boost Wave。它是一个构建为库而不是应用程序的预处理器,但是将它包装起来将它变成一个独立的程序应该是相当简单的(大多数你要做的就是连接它以便它知道哪些文件到读取和写入。)
答案 2 :(得分:6)
您可能需要查看GPP, Generic Pre Processor。它是可自定义的,但看起来它带有一些预定义的设置,可以进行C / C ++预处理。
编辑:看起来-C是要使用的设置
-C cpp兼容模式。这是gpp的行为最接近> cpp的模式。与默认模式不同,元宏扩展仅在>行的开头发生,并且可以理解C注释和字符串。
答案 3 :(得分:6)
mpp portable c预处理器:
mcpp项目被选为2002年日本信息技术促进局(IPA)的“探索性软件项目”之一,并再次入选2003年项目。对于该项目的成就,作者被评为最高级程序员之一<<
答案 4 :(得分:5)
许多编译器都有一个命令行选项,可以执行您想要的操作。
例如,GCC为-E
,MSVC为/P
。
答案 5 :(得分:3)
我想您可以尝试使用独立库cpplib构建您自己的应用,但是当他们提供它时,他们不建议使用它,因为它“尚未达到合理稳定的程度。“我不知道这是多久。
答案 6 :(得分:2)
通常,C ++编译器为您提供了查看预处理源的选项。
使用GCC,如评论所述,您使用:
g++ -E ...other options... files
在某些系统上,尤其是Unix系统,可能会有一个单独的'cpp'程序。在MacOS X上,它安装为/ usr / bin / cpp,是GCC(GNU编译器集合)的一部分。
有时,它安装在更多的地方 - 例如,在Solaris 10上,它是/ usr / lib / cpp。