VS 2008 安装boost库问题

superbtl 2009-10-21 11:14:16
LINK : fatal error LNK1104: 无法打开文件“libboost_regex-vc90-mt-gd-1_38.lib”

工具->选项->项目和解决方案->VC++目录 包含文件 D:\boost_1_38_0
工具->选项->项目和解决方案->VC++目录 库文件 D:\boost_1_38_0\libs

D:\boost_1_38_0下子目录没有lib只有libs

#include <boost/regex.hpp> 就会报上面的错误

我在linux上没这么麻烦啊
...全文
279 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
superbtl 2009-10-22
  • 打赏
  • 举报
回复
libboost_regex-vc90-mt-gd-1_38.lib
这个库文件在我的目录里没有 是不是编译出了问题?
superbtl 2009-10-22
  • 打赏
  • 举报
回复
解决了 是debug版本问题
cphj 2009-10-22
  • 打赏
  • 举报
回复
我编译出来的是
libboost_regex-vc80-mt-gd-1_40.lib
估计vc80是表示VC2005,1_40表示是boost 1.40

libboost_regex-vc90-mt-gd-1_38.lib
你检查一下你的是VC2008,boost 1.38,如果不是那就是环境变量有问题
如果是,那就是没编译出来
superbtl 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 loaden 的回复:]
引用 8 楼 superbtl 的回复:
libboost_regex-vc90-mt-gd-1_38.lib
这个库文件在我的目录里没有 是不是编译出了问题?

你保证编译和使用boost的是同一个编译器?
你在编译时指定编译器版本了吗?

二、自定义boost的编译选项、链接选项
打开tools\build\v2\user-config.jam,查找MSVC configuration,
# Configure specific msvc version for QPSOFT.COM
using msvc : 9.0 : "cl.exe" :
<compileflags>/wd4819
<compileflags>/D_CRT_SECURE_NO_DEPRECATE
<compileflags>/D_SCL_SECURE_NO_DEPRECATE
<compileflags>/D_CRT_NONSTDC_NO_DEPRECATE
<compileflags>/D_SECURE_SCL=0
<linkflags>/MANIFEST:NO
<linkflags>/OPT:REF
<linkflags>/OPT:ICF
<linkflags>/IGNORE:4089 ;

三、通过cmd,执行该批处理,并在命令行下执行以下步骤
1. 编译bjam工具:进入tools\jam\src,执行 build.bat ,完成后在tools\jam\src\bin.ntx86下得到bjam.exe
2. 将bjam.exe拷贝到boost解压目录下,编译相应库:
bjam --with-signals --with-filesystem --with-date_time --with-thread --with-system --build-type=complete threading=multi runtime-link=static --libdir=".\lib"--toolset=msvc-9.0 stage
编译完成后可在stage/lib目录下看到编译完成的BOOST库。
[/Quote]可能是这个问题 晚上回去再看看 我用的是VS 2008 应该是VC9 这个地方没设
superbtl 2009-10-22
  • 打赏
  • 举报
回复
ls两位 libboost_regex-vc90-mt-gd-1_38.lib 编译后就没有出现 怀疑编译出问题了
wanghao111 2009-10-22
  • 打赏
  • 举报
回复
直接拷过去,或者在linker里添加上
taodm 2009-10-22
  • 打赏
  • 举报
回复
呃,楼主能不能自己动手,把这个.lib找出来并拷到VC自己的lib目录里啊。
老邓 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 superbtl 的回复:]
libboost_regex-vc90-mt-gd-1_38.lib
这个库文件在我的目录里没有 是不是编译出了问题?
[/Quote]
你保证编译和使用boost的是同一个编译器?
你在编译时指定编译器版本了吗?

二、自定义boost的编译选项、链接选项
打开tools\build\v2\user-config.jam,查找MSVC configuration,
# Configure specific msvc version for QPSOFT.COM
using msvc : 9.0 : "cl.exe" :
<compileflags>/wd4819
<compileflags>/D_CRT_SECURE_NO_DEPRECATE
<compileflags>/D_SCL_SECURE_NO_DEPRECATE
<compileflags>/D_CRT_NONSTDC_NO_DEPRECATE
<compileflags>/D_SECURE_SCL=0
<linkflags>/MANIFEST:NO
<linkflags>/OPT:REF
<linkflags>/OPT:ICF
<linkflags>/IGNORE:4089 ;

三、通过cmd,执行该批处理,并在命令行下执行以下步骤
1. 编译bjam工具:进入tools\jam\src,执行 build.bat ,完成后在tools\jam\src\bin.ntx86下得到bjam.exe
2. 将bjam.exe拷贝到boost解压目录下,编译相应库:
bjam --with-signals --with-filesystem --with-date_time --with-thread --with-system --build-type=complete threading=multi runtime-link=static --libdir=".\lib" --toolset=msvc-9.0 stage
编译完成后可在stage/lib目录下看到编译完成的BOOST库。
superbtl 2009-10-21
  • 打赏
  • 举报
回复
D:\boost_1_38_0\bin.v2\libs下
工具->选项->项目和解决方案->VC++目录 库文件 D:\boost_1_38_0\bin.v2\libs还是不行 我一直有加这个路径
老邓 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 superbtl 的回复:]
如果没设置路径呢?
[/Quote]
没设路径,相应的lib肯定在:D:\boost_1_38_0 的一个子目录下。
在D:\boost_1_38_0目录上点右键,在菜单里选“搜索”,查找:*.lib
superbtl 2009-10-21
  • 打赏
  • 举报
回复
如果没设置路径呢?
老邓 2009-10-21
  • 打赏
  • 举报
回复
http://www.qpsoft.com/blog/boost-build-cmd-no-vc/
上面是我命令行下编译的总结。
老邓 2009-10-21
  • 打赏
  • 举报
回复
你编译时,将库输出到哪儿了?
如果是命令行下编译,比如:
bjam --with-signals --with-filesystem --with-date_time --with-thread --with-system --build-type=complete threading=multi runtime-link=static --libdir=".\lib" --toolset=msvc-9.0 stage

则可以在lib目录下找到相应的库。
或者你搜索一下你编译的目录:D:\boost_1_38_0 ,查找*.lib,看lib都编译到哪儿了?
superbtl 2009-10-21
  • 打赏
  • 举报
回复
LS真幽默 我用VS2008 command Prompt编译的
老邓 2009-10-21
  • 打赏
  • 举报
回复
需要编译的。编译方法网上一堆!http://www.qpsoft.com/blog/category/6/

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧