在64位程序VS2015中链接boost

时间:2016-09-24 09:11:45

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

我正在将一个大型增压密集型程序升级到VS2015,并提升1.61。该程序是一个64位程序 - x64

Boost似乎在64位模式下寻找错误的库(或者更可能是我做了一些愚蠢的事情)。我相信我已经为VS2015平台构建了正确的boost库。

我尝试从头开始在WIN32模式下制作一个微小的提升功能,这需要静态链接。这很好......

#include <boost/regex.hpp>
#include <iostream>
#include <string>

void test()
{
 std::string line;
 boost::regex pat("^Subject: (Re: |Aw: )*(.*)");
  while (std::cin)
  {
    std::getline(std::cin, line);
    boost::smatch matches;
    if (boost::regex_match(line, matches, pat))
        std::cout << matches[2] << std::endl;
  }
}

但是当我想在x64中编译这个boost抱怨时。是的我已经为两个平台正确设置了#include和链接路径。图书馆不存在。

1&gt; LINK:致命错误LNK1104:无法打开文件'libboost_regex-vc140-mt-gd-1_61.lib'

libboost_regex-vc140-MT-1_61.lib

2 个答案:

答案 0 :(得分:0)

  1. 检查您是否已在64位
  2. 构建了增强功能
  3. 检查您是否已将加速库文件夹添加到视觉工作室项目(属性 - >链接器 - &gt;常规 - >附加库文件夹)
  4. 检查您是否以64位
  5. 构建解决方案
  6. 如果您没有使用自动链接,请在项目中添加库依赖项(属性 - >链接器 - >输入 - >附加依赖项)

答案 1 :(得分:0)

您需要构建编译器要求的正确库集。您应该查阅library naming chart以获取构建时要使用的构建参数(即属性)。在你的情况下,它正在寻找标记为“lib - mt-gd-1_61.lib”的库。阅读图表说明你需要建立:

'/cards/'.$note->id