本文共 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 20122、这个问题最头疼,找了好久的答案,也尝试过很多种。
问题:在编译成功之后,会在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 installVS2010项目配置:找到对应的目录位置。
“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::functionfunc(threadFunc); boost::thread t(func); t.join(); return 0; }
本来编译一次就需要好久时间,各种方案各种尝试,花了很多时间,最终是在VS修改了参数,之后成功的。也算是一种学习吧。好久没写C++的东西了,积累经验吧。lib还是要注意好版本问题。