可以选择在C+中包含头文件+; 我有一个C++代码,需要在某些服务器中包含某个库,而不是在其他服务器中。我使用bjam构建代码
代码示例:可以选择在C+中包含头文件+; 我有一个C++代码,需要在某些服务器中包含某个库,而不是在其他服务器中。我使用bjam构建代码,c++,build,c-preprocessor,bjam,C++,Build,C Preprocessor,Bjam,代码示例: if server in server_list: include <header-file.h> int function(); else: int function(); 头文件包含是编译时活动,而不是运行时。因此,不能使用相同的if条件 使用#ifdef 在列表中定义服务器 #ifdef服务器\u在\u列表中 #包括 #恩迪夫 头文件包含是编译时活动,而不是运行时。因此,不能使用相同的if条件 使用#ifdef 在列表中定义服务器 #ifdef服
if server in server_list:
include <header-file.h>
int function();
else:
int function();
头文件包含是编译时活动,而不是运行时。因此,不能使用相同的if条件 使用#ifdef
在列表中定义服务器
#ifdef服务器\u在\u列表中
#包括
#恩迪夫
头文件包含是编译时活动,而不是运行时。因此,不能使用相同的if条件
使用#ifdef
在列表中定义服务器
#ifdef服务器\u在\u列表中
#包括
#恩迪夫
> P> C++和C++中从“<代码> > <代码>开始的任何一行都是指令。预处理器是一个文本解析器,在编译源代码文件之前对其进行解析。它理解一些特殊的指令,如<代码> >包括< /COD>,<代码>定义< <代码> >代码> > IFDEF <强>,但它对待普通C++代码就像是文本< /强>。因此,不能使用普通C++代码来更改预处理器指令的解释。
让我们看一个例子:
if (x == 4){
#include "x4.h"
}
以上是错误的,因为<代码>如果语句及其括号是C++代码的一部分,那么预处理器就会忽略它。预处理器将直接执行并解释
#include
指令,这将导致x4.h
的内容粘贴到文件中的该位置
正确的编写方法是使用条件预处理器指令,如#if
或#ifdef
。例如
#ifdef INCLUDE_X4
# include "x4.h"
#endif
请注意,此代码中的缩进是可选的
<> P> >关于预处理器指令的更多信息。在C和C++中,< P> >从<代码> > <代码>开始的任何一行都是指令。预处理器是一个文本解析器,在编译源代码文件之前对其进行解析。它理解一些特殊的指令,如<代码> >包括< /COD>,<代码>定义< <代码> >代码> > IFDEF <强>,但它对待普通C++代码就像是文本< /强>。因此,不能使用普通C++代码来更改预处理器指令的解释。
让我们看一个例子:
if (x == 4){
#include "x4.h"
}
以上是错误的,因为<代码>如果语句及其括号是C++代码的一部分,那么预处理器就会忽略它。预处理器将直接执行并解释
#include
指令,这将导致x4.h
的内容粘贴到文件中的该位置
正确的编写方法是使用条件预处理器指令,如#if
或#ifdef
。例如
#ifdef INCLUDE_X4
# include "x4.h"
#endif
请注意,此代码中的缩进是可选的
有关预处理器指令的更多信息,请参见。仅当在特定服务器上运行时,如何定义?@Rajs123如果在需要不同库的不同服务器上运行,则需要构建不同的可执行文件,或使用根据需要加载的DLL。(我怀疑你在Python中期待类似于代码>导入< /Cord>。C++没有这样的工作。)我在构建不同的可执行文件方面很好,但是我需要在JAM文件中提到。如何做到这一点?只有在特定服务器上运行时,我如何定义?@Rajs123如果您在需要不同库的不同服务器上运行,则需要构建不同的可执行文件,或者根据需要使用加载的DLL。(我怀疑你在Python中期待类似于代码>导入< /Cord>。C++没有这样的工作。)我在构建不同的可执行文件方面很好,但是我需要在JAM文件中提到。如何做到这一点?如何在Jam文件中指定if-else?如何在Jam文件中指定if-else?