如果条件满足,包括cpp文件
Include cpp file if condition fulfilled
在我的文件c++项目中,我想只在满足某些条件时才包含文件。
目标代码类似于#if condition1
#include file1.cpp
#endif
#if condition2
#include file2.cpp
#endif
我真的不知道如何解决这个问题。#include是一个预处理器语句,而if条件必须在程序中计算。在上面的代码中,没有加载任何文件,因为两个条件都没有满足。如果改成
if condition1{
#include file1.cpp
...
所有文件被包含,因为预处理器找到#include语句,而不管if语句。
到目前为止,我还没有发现第三种可能性。一般的答案是,你不能按照你想要的方式去做你想做的事。然而,取决于你的目标是什么,可能有实现它的方法。(您也没有提到您使用哪个开发环境。)
1)您可以为包含不同cpp文件的不同版本创建不同的目标。大多数c++环境都有在命令行中传递#define值的选项,因此您可以以这种方式传递目标名称。然后你可以在编译时使用#if指令来测试你正在构建的目标。
2)你可以编译和链接不同的cpp文件作为单独的二进制文件,并在运行时动态加载到你的程序中。我相信这在。net和c#这样的环境中是很容易的,但在c++项目中可能会有更多的工作,这取决于你的环境和你想要做的。
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何在cpp文件之间切换窗口?在Qt中
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 库标题在标题中不可见,但在 cmake build 下.cpp文件中完全可见.为什么?
- C++ 链接到单独的.cpp文件说"multiple definitions"
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 包含在.cpp文件中包含在 .h 文件时包含
- C++(.cpp文件和.h文件)拆分代码并添加一个函数,提取 - 这很容易吗?
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- 如何使用线程类编译 cpp 文件?
- 使用 Powershell 命令将 cpp 文件的文件夹编译为 GNU 的 g++
- 我应该将外部标头放在 .h 文件还是.cpp文件中?
- 从另一个 cpp 文件更改结构内、映射键内的变量