gpt4 book ai didi

c++ - #define 在 Boost Jamfiles 中

转载 作者:可可西里 更新时间:2023-11-01 17:53:24 27 4
gpt4 key购买 nike

这是我的项目结构:

MainFolder
- Jamroot.jam
- AnotherFolder
- libFolder
- Jamfile.jam
- cpp files

我在其中一个 cpp 文件中有一个 #ifdef。示例:

#ifdef SOMEVALUE
Code
#endif

我需要在 Jamfile 中使用#define 编译 cpp 文件。因为,我有两种类型的可执行文件(一种带 #define,一种不带),我需要在 Jamfile 本身而不是 cpp 代码中执行此操作。

我已经尝试了以下方法,但它不起作用(无法在#ifdef#endif block 中找到定义):

lib libname : [ glob *.cpp ] : <link>static : <define>SOMEVALUE ;

最佳答案

添加预处理器定义使用“定义”功能,正如您在示例中看到的那样。但该功能需要指定为 requirement的目标定义。 requirements被指定为目标定义的第三个参数,而不是您用例中的第四个参数。因此,而不是:

lib
libname # main-target-name
: [ glob *.cpp ] # sources
: <link>static # requirements
: <define>SOMEVALUE # default-build
;

您需要将“ ”从使用要求移动到目标要求:

lib
libname # main-target-name
: [ glob *.cpp ] # sources
: <link>static <define>SOMEVALUE # requirements
: # default-build
: # usage-requirements
;

您可以找到目标定义的所有参数是什么 here .

关于c++ - #define 在 Boost Jamfiles 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39826865/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com