博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows boost库安装 VS2010
阅读量:4298 次
发布时间:2019-05-27

本文共 2021 字,大约阅读时间需要 6 分钟。

记录以下安装的时候出现的坑吧。由于项目需要,目的是为了配置thrift框架,使用RPC服务。但是吧,在Windows上需要配置各种依赖库,重新编译。

1.版本问题。最初没有意识到VS版本跟boost版本的问题,出了很多问题,但是最终问题好像也都不是版本的问题。不过最好还是要版本一致吧。

安装boost使用的版本:boost_1_53_0
国内比较好下载的链接地址:


问题:mspdb100.dll无法找到的情况。

方案:这个容易,因为没有在VS环境下进行安装,少了很多环境变量的设置。所以在Microsoft Visual Studio 10.0\VC\bin目录下,执行vcvars32.bat就会配置相关的环境变量,再运行就不会出现这个问题了。

问题:出现了v100之类的问题,可能是因为版本2010是v100。所以需要安装对版本,这个问题但是没有记录清楚。

方案:v100 for visual studio 2010, v110 for visual studio 2012
you also may be working on v100 from visual studio 2012


2、这个问题最头疼,找了好久的答案,也尝试过很多种。

问题:在编译成功之后,会在stage\lib目录下生成对应的lib文件。将目录都添加进VS2010的项目中,这是头文件的问题都已经解决。但是在编译的时候一直出现LINK : fatal error LNK1104: cannot open file ‘libboost_thread-vc100-mt-s-1_53.lib’的问题,属于链接的问题吧。检查一遍配置的目录一点问题都没有,重新安装boost也是一样的问题。

方案:
这个说是编译参数设置的问题,但是试了还是一样的问题,后来是在这个基础上进行的下一个步骤,所以也算是安装步骤吧。
终于解决了问题。应该是编译的库的参数问题。
这里写图片描述

由于不熟悉,还是要慢慢学习。原因如下:


“多线程(/MT)”: release版本多线程静态库

需要使用 libboost_regex-vc90-mt-s-1_44.lib

“多线程调试(/MTd)”:debug版本多线程静态程库

需要使用 libboost_regex-vc90-mt-sgd-1_44.lib

“多线程 DLL(/MD)”: release版本多线程动态库

需要使用
静态boost 库连接
libboost_regex-vc90-mt -1_44.lib

动态boost 库连接, 需要在引入库前加上“lib”,

运行需要带上对应的dll
boost_regex-vc90-mt-1_44.lib à在引入库前加上“lib”
boost_regex-vc90-mt-1_44.dll

“多线程调试 DLL(/MDd)”: debug版本多线程动态库

需要使用
静态boost 库连接
libboost_regex-vc90-mt-gd-1_44.lib

动态boost 库连接, 需要在引入库前加上“lib”,

运行需要带上对应的dll
boost_regex-vc90-mt-gd-1_44.lib à在引入库前加上“lib”
boost_regex-vc90-mt-gd-1_44.dll


附带安装方式:

注:在VS命令行下执行
boost安装编译:
1、bootsrap.bat
2、bjam stage toolset=msvc-10.0 variant=debug link=static address-model=32 threading=multi runtime-link=static -s install

VS2010项目配置:找到对应的目录位置。

“VC++目录->库目录”,添加“C:\Boost\lib”,“包含目录”添加了“C:\Boost\include\boost-1_53”

测试代码:

#include "stdafx.h"#include "boost/thread.hpp"  #include "iostream"  using namespace std;  void threadFunc()  {      cout << "This is a thread function" << endl;  }  int main()  {      boost::function
func(threadFunc); boost::thread t(func); t.join(); return 0; }

本来编译一次就需要好久时间,各种方案各种尝试,花了很多时间,最终是在VS修改了参数,之后成功的。也算是一种学习吧。好久没写C++的东西了,积累经验吧。lib还是要注意好版本问题。

你可能感兴趣的文章
vim常用命令
查看>>
C++ STL之map与unordered_map
查看>>
散列(hash)表算法[转]
查看>>
C++之lambda表达式
查看>>
Atom插件Markdown Preview Enhanced的字体大小修改
查看>>
C++ STL之正则表达式
查看>>
超强vim配置文件[转]
查看>>
Vim代码补全插件YouCompleteMe的自动化安装[转]
查看>>
虚函数的实调用与虚调用
查看>>
memcpy与memmove区别和实现
查看>>
DNS域名解析过程
查看>>
IP、TCP、UDP首部详解
查看>>
move和forward源码分析[转]
查看>>
智能指针之make_unique与make_shared
查看>>
使用智能指针的注意事项
查看>>
C++之失控指针、迷途指针、野指针、悬浮指针及空指针[转]
查看>>
C++之RAII机制[转]
查看>>
printf格式化输出符号详细说明[转]
查看>>
最长回文子串:Manacher算法[转]
查看>>
shared_ptr线程安全性分析[转]
查看>>