2017-03-08 54 views
1

我正在尝试使用Visual Studio 2013编译boost 1.52库文件。为此,请使用visual studio prompt命令运行文件b2。Boost库文件生成

一切似乎运行正常。但是,我在/ stage/lib /中获得的lib文件没有VC版本。例如,我有

libboost_date_time-vc-mt-1_52.lib 

我的动态库需要

libboost_date_time-vc110-mt-1_52.lib 

当我用vc110 substituing VC重命名的所有文件,它可以作为一个魅力,但它是一个非常挑剔的过程。

我做了一些研究,我可以看到,可以控制Boost相对于VS版本的版本。我尝试了以下命令:

b2 toolset=msvc-12.0 

但是,我仍然得到无版本的文件。

如何让它工作?谢谢。

+0

您是否尝试过更新版本的boost?我使用的是1.60,对VS2015使用选项'toolset = msvc-14.0',生成的文件是'libboost_date_time-vc140-mt-1_60.lib' – jpo38

+0

Boost 1.60导致我出现其他问题,这就是为什么我降级到1.52 ,这是一个完成这项工作的版本。在过去,我可以用boost 1.52获得正确的文件,但是我没有生成boost lib文件。无论如何,我希望提高生成lib文件与版本号无视升压版本。 – Canardini

+0

'我希望提高生成lib文件的版本号不考虑boost版本... ... exepct,如果他们开始做的发布是在1.52和1.60之间... – jpo38

回答

2

boost 1.52于2012年发布。目前,Visual Studio 2013不是现有的编译器。

您正在编译一个不受官方支持的编译器的库。你真的很幸运,用Visual Studio 2013编译1.52。

b2无法将vc110添加到您的库名称并不奇怪。在boost编译系统配置文件的某个地方可能会有一个case语句,它们对于每个“受支持”的编译器都有一个版本名称......并且那里可能没有vc110 ...

您需要采取第一次升压支持Visual Studio 2013的版本或者使用Visual Studio 2010编译器(1.52支持)......或者像手动那样手动重命名文件。

顺便说一句,请注意,重命名库会使自动链接失败,如果您打算使用它。请参阅boost\config\auto_link.hpp:这明确地处理每个编译器版本....将仅适用于官方支持的编译器。

+0

有道理(+1) – Canardini