bjam编译手扎

编译静态库的时候,在相关 jam 文件中,添加如下代码。

# 默认编译配置(默认编译4种最常用的库类型)
    default-build =
        debug release
        <threading>multi
        <link>static
        ;
    if [ os.name ] = NT
    {
        default-build += <runtime-link>static <runtime-link>shared ;
    }

# 这里的 <tag> 配合下面的 tag rule 可以定义输出的文件名,这里使用仿 boost 规则的库文件名,不过删除了版本信息
project name
    : requirements  <tag>@$(__name__).tag
    : build-dir bin
    : default-build $(default-build)
    ;

# 按仿 boost 规则生成 lib 文件名
rule tag ( name : type ? : property-set )
{
    if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
    {
  return [ common.format-name
   <base> <toolset> <threading> <runtime>
   : $(name) : $(type) : $(property-set) ] ;
    }
}

# 下面的代码把库 安装到 stage/lib 目录,这个一般应该放在根目录里的 jamfile 里,
# 这样在根目录里执行 bjam, 就可以直接编译所需要的库的各个版本,然后复制到 stage/lib 下

local libraries = lib1 lib2 lib3 ;

install stage
    :   $(libraries)
    :   <location>stage/lib
    ;

最后 修改 boost/config/auto_link.hpp 文件(去掉版本相关的代码),就可以创建你自己的,可以自动连接正确版本的库了。

你可能感兴趣的:(bjam编译手扎)