C++ 使用bjam构建两个具有相同源的库

C++ 使用bjam构建两个具有相同源的库,c++,boost,bjam,C++,Boost,Bjam,我正在使用Boost的bjam,并试图从同一个JAM文件构建同一个库的两个不同版本。一个版本的库需要使用定义的宏来实现特殊功能。我希望在同一最终位置实现两个不同名称的库 举例来说 lib a : [glob a.cpp] ; lib a_special : [glob a.cpp] : <define>SPECIAL_FUNCTIONALITY ; 有人知道如何将目标的中间文件转移到其他位置吗? 有人能想出更好的方法来实现我的目标吗?定义是且不影响构建变量。您需要做的是创建一个非

我正在使用Boost的bjam,并试图从同一个JAM文件构建同一个库的两个不同版本。一个版本的库需要使用定义的宏来实现特殊功能。我希望在同一最终位置实现两个不同名称的库

举例来说

lib a
: [glob a.cpp]
;

lib a_special
: [glob a.cpp]
: <define>SPECIAL_FUNCTIONALITY
;
有人知道如何将目标的中间文件转移到其他位置吗? 有人能想出更好的方法来实现我的目标吗?

定义是且不影响构建变量。您需要做的是创建一个非偶然的特性,该特性描述了改变生成的特性。例如:

import feature : feature ;
feature special : off on : propagated ;

lib a : a.cpp : <special>off ;
lib a_special : a.cpp : <special>on <special>on:<define>SPECIAL_FUNCTIONALITY ;
导入特征:特征;
特殊功能:关-开:传播;
liba:a.cpp:off;
lib a_special:a.cpp:on on:special_功能;
上面使用目标需求来定义在您请求特殊功能时生成的库。它还使用条件属性定义特殊库上的predef符号。定义了特征后,还有其他方法可以获得相同的结果

import feature : feature ;
feature special : off on : propagated ;

lib a : a.cpp : <special>off ;
lib a_special : a.cpp : <special>on <special>on:<define>SPECIAL_FUNCTIONALITY ;