c++ - 如何使用 C++ 独立 ASIO 库

标签 c++ windows asio

我正在尝试在 Windows 10 上使用 asio 库,这是一个简单的测试代码块:

#include <iostream>
#include <asio.hpp>

using std::cout;

int main()
{
    std::cout << "hello asio\n";
    asio::io_context ioc;
    asio::steady_timer tmer(ioc, asio::chrono::seconds(1));
    tmer.wait();

    cout << "hi asio\n";
    ioc.run();

    return 0;
}

使用 Visual Studio 2017。要打开开发人员命令提示符,我使用以下命令

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools>vsdevcmd

然后,基于asio doc ,我在asio src文件夹下运行命令nmake -f Makefile.msc。但是我收到一个错误:

Microsoft (R) Program Maintenance Utility Version 14.16.27025.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl -Fetests\latency\tcp_client.exe -Fotests\latency\tcp_client.obj -nologo -EHac -GR -I. -I../include    -O2 -MD        -I../../boost_1_34_1 -D_WIN32_WINNT=0x0501  -DBOOST_ALL_NO_LIB  -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING tests\latency\tcp_client.cpp  -link -opt:ref
tcp_client.cpp
../include\asio/detail/config.hpp(26): fatal error C1083: Cannot open include file: 'boost/config.hpp': No such file or directory
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\cl.EXE"' : return code '0x2'
Stop.

库似乎需要 boost/config.hpp。我真的试图避免使用提升。有什么方法可以让我在 Windows 10 上独立使用 asio 吗?

最佳答案

要在没有任何 boost 库的情况下使用 asio,您必须在某个时候定义 ASIO_STANDALONE。最好是在您的 Visual Studio 项目中,或者在包含任何 asio header 之前的代码中。

关于c++ - 如何使用 C++ 独立 ASIO 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53945148/

相关文章:

windows - 以管理员身份在 WiX 安装中运行 Powershell 脚本

python - 在线运行 ASP 脚本时的安全权限

c++ - 如何获取卷 GUID

windows - 纯数据卡住并且不输出音频

c++ - 是否可以更早地销毁对象,使其存储内存被后续对象重用?

c++ - 从 Eigen 旋转和平移矩阵创建 Sophus::SE3 对象并返回

audio - ASIO SDK如何处理音频缓冲区

audio - 开始音频编程的最佳方式?

c++ - std::vector 比普通数组快吗?

c++ - 将成员函数传递给需要回调的 C 接口(interface)