1

我正在尝试链接来自 Jamfile 的 boost 库:

import os ;
path-constant BOOST_ROOT : [ os.environ BOOST_ROOT ] ;
use-project /boost : $(BOOST_ROOT) ;

exe hello :
            hello.cpp
            /boost//filesystem
            /boost//system
          :
            <link>static
          ;

虽然我可以从控制台输出中看到库已编译,但链接器输出错误:

msvc.link bin\msvc-10.0\debug\link-static\hello.exe
LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc100-mt-gd-1_46.lib'

为什么会报错?正在从 Jamfile 级别链接库,那么为什么在应该链接的时候没有链接库?据我了解,如果整个构建过程由 Jamfiles 控制,则该库应自动静态链接,并且不应添加特定于编译器的标志(因为它会使 Jamfiles 的可移植性降低)。请帮忙。

4

1 回答 1

2

您可能在使用 boost 的自动链接功能时遇到问题。您可以通过定义来禁用它BOOST_ALL_NO_LIB(我想添加<define>BOOST_ALL_NO_LIB到目标的要求hello就足够了)。

于 2012-09-30T21:10:34.310 回答