zoukankan      html  css  js  c++  java
  • 新手,Visual Studio 2015 配置Boost库,如何编译和选择,遇到无法打开文件“libboost_thread-vc140-mt-gd-1_63.lib“的解决办法

    1,到官网下载最新的boost,www.boost.org 这里我下载的1-63版本.

    2,安装,解压后运行bootstrap.bat文件。稍等一小会就OK。

    3,编译boost库。注意一定要使用VS2015的x86本机工具命令提示,这个可以在VS2015的安装菜单里面找到。进入命令行提示,输入下面的内容:

    bjam -j4 --debug-symbols=on --build-type=complete toolset=msvc-14.0 threading=multi runtime-link=shared address-model=32

    注意这里指定的运行库类型是动态链接库:
    runtime-link=shared

    当然也可以选择静态库,这样指定即可:
    runtime-link=static 

    根据电脑配置,太低可能要30分钟到一小时。然后等待编译完毕。

    编译完后,屏幕会有下面的提示:

    ...updated 2376 targets...
    
    
    The Boost C++ Libraries were successfully built!
    
    The following directory should be added to compiler include paths:
    
        E:oost_1_63_0boost_1_63_0
    
    The following directory should be added to linker library paths:
    
        E:oost_1_63_0oost_1_63_0stagelib

    4,在VS2015中配置boost环境

    项目属性 > 配置属性,然后看到下面的选择项:
        常规 > 平台工具集,选择 Visual Studio 2015 (v140).
    下面的两个操作,需要你将上面boost编译的时候告诉你的目录替换到下面说的有关目录信息里面去。
        看到 "CC++" 常规 > 附加包含目录,增加"E:oost_1_63_0oost_1_63_0"
        最后,看到“链接器”常规 > 附加库目录,增加"E:oost_1_63_0oost_1_63_0stagelib"

    注意:一定要进行这样正确的设置,否则编译使用boost的程序总是会提示有问题。


    5,使用boost:

    #include "stdafx.h"
    #include <iostream>  
    #include <boost/thread/thread.hpp>  
    void hello()
    {
    std::cout << "Hello world, I'm a thread!" << std::endl;
    }
    int main()
    {
    boost::thread thrd(&hello);
    thrd.join();
    }

    出错:

    错误 LNK1104 无法打开文件“libboost_thread-vc140-mt-gd-1_63.lib”


    解决办法:

    因为上面选择的是以动态链接库的形式编译的boost库,所以这里要选择 多线程调试 DLL(/MDd)。

    再去运行一下。就OK了。

    6,参考资料

    新人,第一次使用C++,现在使用C++的人很少了,问了一圈都没有人会这个问题,查找了很多资料,这里贴出有用的参考资料:
    http://blog.csdn.net/zhaoya_huangqing/article/details/47318479
    标题跟我差不多,多谢这位博主了。

    http://www.cnblogs.com/rok-aya/p/4986261.html
    转帖的老外的文章,很有启发性,跟本文的问题对路。

    https://msdn.microsoft.com/zh-cn/vstudio/669zx6zc.aspx
    MSDN官方的指导如何实现项目属性,进阶

    http://www.cnblogs.com/mr-wid/archive/2013/01/22/2871105.html
    http://www.cnblogs.com/wendao/archive/2011/11/28/article2_boost_bind.html
    boost学习的一些文章,值得参考。

  • 相关阅读:
    Tomcat单独部署,控制台乱码解决方法
    mysql授权访问数据库
    Arrays.binarySearch采坑记录及用法
    使用Spring Ehcache二级缓存优化查询性能
    Redis批量删除缓存数据
    Java并发包之Semaphore用法
    Java并发包之CountDownLatch用法
    如何用Xshell导出文件到桌面本地
    Semaphore信号量原理
    老应用链接替换到新链接
  • 原文地址:https://www.cnblogs.com/bluedoctor/p/6236905.html
Copyright © 2011-2022 走看看