如果条件已满足,请包含cpp文件

时间:2016-06-27 11:47:46

标签: c++ include c-preprocessor

在我的文件C ++项目中,我希望仅在满足某些条件时才包含文件。

目标代码类似于

#if condition1
   #include file1.cpp
#endif
#if condition2
   #include file2.cpp
#endif

我真的不知道如何解决这个问题。 #include是一个预处理器语句,而if条件必须在程序中计算。在上面的代码中没有加载任何文件,因为没有满足任何条件。如果我改为

if condition1{
   #include file1.cpp
...

所有文件都包含在内,因为预处理器找到#include语句而不管if语句。

到目前为止,我还没有找到第三种可能性。

1 个答案:

答案 0 :(得分:0)

一般的答案是,你不能以你想要的方式做你想做的事。但是,根据您的目标,可能有实现目标的方法。 (您还没有提到您使用的开发环境。)

1)您可以为包含不同cpp文件的不同版本创建不同的目标。大多数C ++环境都有在命令行中传递#define值的选项,因此您可以通过这种方式传递目标名称。然后,您可以在编译时使用#if指令来测试您正在构建的目标。

2)您可以编译和链接作为单独二进制文件而变化的cpp文件,并在运行时将它们动态加载到您的程序中。我相信在使用C#的.NET环境中这很容易,但在C ++项目中可能需要更多工作,这取决于您的环境以及您要做的事情。

相关问题