boost库之error LINK1104 sgd(转)

来源:互联网 发布:工业视觉识别软件 编辑:程序博客网 时间:2024/06/07 22:53

目前BOOST库在使用时的链接会默认选择静态链接方式。如果BOOST库也是直接调用bjam不带参数默认编译出来的,那么在使用时就会出现类似如下错误:

   libboost_system-vc71-mt-sgd-1_46_1.lib等包含“sgd”的LIB无法找到的错误。

   这是因为自带的bjam.exe默认编译的不是静态库。那么还是需要手动的指定一下编译参数来编译一下。

   打开CMD,进入boost库的根目录中( cd e:\boost_1_46_1),输入以下命令:

 

bjam stage --toolset=msvc-7.1 --without-graph--without-graph_parallel --without-math --without-mpi--without-python --without-serialization --without-wave--stagedir="E:\boost_1_46_1\bin\vc71" link=staticruntime-link=static threading=multi debug release

 
   其中,--toolset指定编译器、--without指定不编译的子库、--stagedir指定编译好的LIB位置,其他的顾名思义。
 
上面msvc-7.1是ide的版本号,每个人根据自己的实现安装的vs版本来设置:
msvc-6.0对应Visual C++ 6.0
msvc-7.0对应Visual C++ .NET 2002
msvc-7.1对应Visual C++ .NET 2003
msvc-8.0对应Visual C++ 2005
msvc-9.0对应Visual C++ 2008
msvc-10.0对应Visual C++ 2010
msvc-11.0对应Visual C++ 2012

   另附编译动态库的命令,以方便使用时直接复制,懒得自己敲。
 
动态库编译
bjam stage --toolset=msvc-7.1 --without-graph--without-graph_parallel --without-math --without-mpi--without-python --without-serialization --without-wave--stagedir="E:\boost_1_46_1\bin\vc71" link=staticruntime-link=static threading=multi debug release
原创粉丝点击