Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以选择在C+中包含头文件+; 我有一个C++代码,需要在某些服务器中包含某个库,而不是在其他服务器中。我使用bjam构建代码_C++_Build_C Preprocessor_Bjam - Fatal编程技术网

可以选择在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?