我如何使用Visual Studio C / C ++编译器(cl.exe)预处理我的目标C代码?

问题描述 投票:0回答:1

我有一些旧的Objective-C代码,正在尝试使用自定义构建框架进行编译。此构建框架对源文件进行预处理,然后将其编译为C源代码,然后使用Cl.exe进行其余的编译。

但是,当我尝试对VS2015执行相同操作时,它在预处理阶段失败。从VS2015开始,VCRuntime.h间接包含在所有文件中,并使用更新的C ++功能,例如可变参数宏。所以我的预处理器失败了。

因此,有一种方法可以使用Cl.exe预处理我的源代码,例如展开#include,评估#define等而不关心实际代码?我尝试了cl.exe /Tp,但没有成功。但是,此选项确实可以理解#imports

c++ objective-c visual-studio-2015 compiler-construction preprocessor
1个回答
0
投票

我终于知道了。

cl.exe /Tp /E /I命令可以在某种程度上扩展对objective-c (.m)c (.c)源文件的预处理。但是,它无法解析很少的COM相关代码。

然后我发现an open-source C-Pre-Processor可以成功地预处理.c, .cpp and .m files。这个工具的好处是,它也支持C ++ 11功能。可变参数模板等]

© www.soinside.com 2019 - 2024. All rights reserved.