【问题标题】:How does visual studio (ms compiler) know it needs specific boost librariesVisual Studio(ms 编译器)如何知道它需要特定的 boost 库
【发布时间】:2017-03-07 22:00:06
【问题描述】:

vs2015 社区,x64,调试,提升 1.63

  • 新建空项目
  • Properties->C++->General->Additional Include Directories"C:\Program Files\boost_1_63_0" 添加新的 C++ 文件,Source.cpp
#include "boost/make_shared.hpp"   
#include "boost/thread.hpp"

void main(int argc, char **argv)
{
}
  • 构建解决方案
  • 结果:
1>------ Build started: Project: boostLibTest, Configuration: Debug x64 ------
1>  Source.cpp
1>LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc140-mt-gd-1_63.lib'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

那个 lib 文件在哪里被添加到项目中?不是boostLibTest.vcxproj,也不是编译器的命令行。

我想编写一个使用 boost 的静态库,我可以从另一个不需要/不需要 boost 的应用程序中访问它,但这种自动包含-boost 依赖性阻止了我这样做。

【问题讨论】:

标签: c++ boost visual-studio-2015


【解决方案1】:

MSVC 支持的 #pragmas 让头文件声明“你需要这个库”。

Boost 显然正在使用它们。

理想情况下,boost 应该只将它们包含在不是“仅头文件”的头文件中。粒度可能并不完美。但是,如果您只需要来自"boost/thread.hpp" 的一些枚举值和其他仅头文件数据,请检查它们是否包含在“仅头文件”头中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2021-02-20
    • 2016-12-23
    • 2010-12-17
    相关资源
    最近更新 更多