6

难怪...\boost_1_58_0\stage\lib. 我怎样才能得到一个?我只有:

boost_1_58_0\stage\lib\libboost_filesystem-vc120-mt-s-1_58.lib
boost_1_58_0\stage\lib\libboost_filesystem-vc120-s-1_58.lib

在那里。试图用各种选项编译 boost 并最终附加 到它(来自Linker error LNK1104 with 'libboost_filesystem-vc100-mt-s-1_49.lib'--build-type=complete的“穷人”解决方案)以获得:

> b2 toolset=msvc threadapi=win32 link=static runtime-link=static \
variant=release address-model=32 --with-filesystem --with-locale --with-regex \
--with-system --with-iostreams --build-type=complete

我正在导入的项目的自述文件中建议的命令行 - 仍然没有乐趣。这是一个 CMake 项目,我为构建 MSVS 解决方案付出了一些努力。

注意:仔细查看 CMake gui 时,我的问题得到了解决:

在此处输入图像描述

我意识到这是没有构建的调试配置,当我右键单击“解决方案”>配置管理器>更改为发布构建时,果然没问题。问题仍然存在 - 我如何获得那些 libboost_filesystem-vc120-mt- sgd -1_58.lib 构建?

4

1 回答 1

12

您需要runtime-link=static runtime-debugging=on variant=debug在 b2 命令行 args 中获取sgd.

来自关于 Windows 上库命名的boost 文档(特别是 ABI 标记部分):

ABI 标记:对影响库与其他编译代码的互操作性的细节进行编码。对于每个这样的功能,标签中都会添加一个字母:

Key  |  Use this library when:                                |  Boost.Build option
=====================================================================================
 s   |  linking statically to the C++ standard library and    |  runtime-link=static
     |  compiler runtime support libraries.                   | 
-------------------------------------------------------------------------------------
 g   |  using debug versions of the standard and runtime      |  runtime-debugging=on
     |  support libraries.                                    |
-------------------------------------------------------------------------------------
 y   |  using a special debug build of Python.                |  python-debugging=on
-------------------------------------------------------------------------------------
 d   |  building a debug version of your code.                |  variant=debug
-------------------------------------------------------------------------------------
 p   |  using the STLPort standard library rather than the    |  stdlib=stlport
     |  default one supplied with your compiler.              |
于 2015-04-22T23:39:00.307 回答