c++ - 为什么不能使用 C++ Boost Lib?

标签 c++ boost

<分区>

我最近开始使用 Boost 库,但在安装时遇到问题。

到目前为止我所做的是:

  • 下载库,解压到“C:/Boost”目录。
  • 进入 Visual Studio 2012 CMD + 执行“cd C:/Boost/boost1_56_0”。
  • 键入 bootstrap.bat 命令,然后键入 b2 命令。
  • 进入 Visual 并在 C/C++ General -> Additional Include Directories 中添加我之前提取的 boost root lib 的目录。
  • 在 Configuration Properties > C/C++ > Precompiled Headers 中,将 Use Precompiled Headers (/Yu) 更改为 Not Using Precompiled Headers

在那个项目中,我制作了一个 main.cpp 文件,其中包含:

#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>

int main()
{
    using namespace boost::lambda;
    typedef std::istream_iterator<int> in;

    std::for_each(
        in(std::cin), in(), std::cout << (_1 * 3) << " " );
}

出于某种原因,我不再有任何线索,我得到了这些错误:

  1. LNK2019 - 未解析的外部符号 _WinMain@16 在函数 __tmainCRTStartup 中引用
  2. LNK1120 - 1 个 Unresolved external 问题

我尝试从互联网上的几个地方尝试配置和命令,但没有结果。为什么会这样?

最佳答案

在 visual studio 中创建一个新的控制台项目,它应该适合你。

出现此错误的原因是您创建了一个 Windows 应用程序,并且 Windows 应用程序入口点称为 WinMain

main 是控制台应用程序的入口点,这在您的情况下是正确的。

而链接器正在寻找 WinMain,这会导致错误,因为它找不到入口点,因此找不到未解析的外部符号。

关于c++ - 为什么不能使用 C++ Boost Lib?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25847614/

相关文章:

c++ - 调试时 has_new_operator.hpp 中的 Boost 错误

c++ - boost::program_options 总是用空值解析命令行

c++ - Signals2 connect() 使用模板

c++ - MSVC 无法评估 enable_if 中的 constexpr 函数

c++ - 从 C++ 中的字符串解析键/值对

c++ - 包裹在协程中的 boost asio 计时器导致 clang-5.0 上的 SEGFAULT

c++ - 线程安全设置

c++ - 调整结构/字符数组的大小(以减少内存使用)

c++ - 如何处理与 C++ 中的 unicode 支持相关的代码重复

c++ - 为什么boost::condition_variable可以使用pthread_cond_signal来仅唤醒一个线程