使用Visual Studio 2010 P.E的BOOST版本1.46.1

时间:2011-04-19 19:32:53

标签: c++ visual-studio-2010 boost boost-asio

我正在尝试使用Boost运行一些简单的示例,并且我不断遇到此错误,我尝试编译此但我无法创建“libboost_system-vc100-mt-gd-1_46_1”。 LIB”。

我一直在讨论这个问题:

错误LNK1104:无法打开文件'libboost_system-vc100-mt-gd-1_46_1.lib'

之前有人遇到此错误吗?如何使用NMAKE正确编译它,因为它一直告诉我它是“没有ICU / Unicode支持的boost.regex”,它给它一个“致命的错误U1073并告诉我它不知道如何制作”../src /c_regex_traits.cpp“。

很抱歉,如果这是一个混乱,那么很多信息对我来说越来越混乱。

5 个答案:

答案 0 :(得分:3)

您的助推器未正确构建或安装。请按照instruction了解如何安装boost。

答案 1 :(得分:3)

您需要首先构建boost库。

要执行此操作,请打开命令行&去提升根,例如C:\ dev \ boost \ 1_46_1。

根据您是要为64位还是32位应用程序构建,请键入

(64):bjam toolset=msvc address-model=64 variant=debug,release link=static threading=multi runtime-link=static,shared stage

(x86):bjam toolset=msvc variant=debug,release link=static threading=multi runtime-link=static,shared stage

开始编译。在提升建设的同时保持耐心,需要花费很多时间。构建完成后,您可以在“stage \ lib”文件夹中找到库文件。

另请注意,您可以在构建完成后删除文件夹“bin.v2”。

现在您需要将VS2010项目指向这些库。修改mlimber答案的一部分:

在VS2010中,右键单击项目,选择“属性”,然后转到“配置属性” - >链接器 - >一般。在列表中间查找“Additional Library Directories”,并在那里添加C:\ Program Files \ Boost \ boost_1_46_1 \ lib(或其他)。

另一种方法是执行此操作

在VS2010中,右键单击项目,选择“属性”,然后转到“配置属性” - > VC ++目录。在列表中间查找“Library Directories”,并在那里添加C:\ Program Files \ Boost \ boost_1_46_1 \ lib(或其他)。


除上述内容外,还可以从

下载

http://sourceforge.net/projects/boost/files/boost-binaries/1.46.1/

必要的库(包括缺少的文件)。

答案 2 :(得分:2)

在尝试构建Pion网络库时,我遇到了一个非常类似的问题,因为Pion依赖于Boost库。

My Boost构建是使用boostrap和bjam而不是BoostPro构建的。

我得到的错误是:LINK:致命错误LNK1104:无法打开文件'boost_thread-vc100-mt-gd-1_46_1.lib'

当我查看C:\ OpenSource \ boost_1_46_1 \ stage \ lib目录时,我看到每个文件名都以libboost_开头而不是boost_。文件boost_thread-vc100-mt-gd-1_46_1.lib显然已丢失。这让我怀疑并非所有的boost库都是由bjam构建的。经过一番研究后,我重新选择了bjam - build-type = complete

现在我注意到它开始创建以boost_开头的lib文件名。更不用说,Pion库现在可以成功编译。

希望这为这个帖子增添了一些清晰度。

答案 3 :(得分:1)

或者ybungalobill建议使用www.boostpro.com中的安装程序。 在安装程序中,您必须选择msvc 10的boost版本,并在安装后更新VS2010属性表中的visual studio include和lib目录,以指向boost include和lib目录。

答案 4 :(得分:1)

我认为您使用了BoostPro安装程序,但是您安装了哪些库类型 - 仅限标头,静态链接,DLL,一切?

假设你做了所有事情,那么问题可能是你没有在库路径中提升的路径。有问题的文件名以“libboost”开头,它告诉我你正在尝试使用静态链接版本,这很好。您应该将库路径添加到Makefile或项目设置中以用于所有构建配置。它可能类似于C:\Program Files\Boost\boost_1_46_1(对于32位版本的Windows上的最新版本)。

在VS2010中,右键单击项目,选择顶部的“所有配置”,然后转到配置属性|链接器[或图书馆员,如果你正在建立一个图书馆] |一般。在列表中间查找“其他库目录”,并在其中添加C:\Program Files\Boost\boost_1_46_1\lib(或其他)。

为使用不是标题的Boost库的解决方案中的每个项目执行此操作。

对于Makefile,您必须找到库路径并以类似的方式手动添加Boost。