windows 使用vscode 配置 C++20与asio

C++20 与 asio参考资料

Talking Async Ep1: Why C++20 is the Awesomest Language for Network ProgrammingTalking Async Ep2: Cancellation in depth

GitHub - chriskohlhoff/talking-async: Example programs for Talking Async videos

asio C++ library - Browse /asio at SourceForge.net

vscode配置C++20,通用配置参考:

新手VSCode配置C++20 - AndreaDO - 博客园

修改.vscode的配置

《tasks.json 》配置

{
    "tasks": [
        {
            "type": "cppbuild",    // C++ 构建任务
            "label": "C/C++: g++.exe build active file",    // 任务的名称  
            "command": "D:\\src\\mingw64\\bin\\g++.exe",    // g++ 路径
            "args": [
                "-fdiagnostics-color=always",    // 使编译器的输出信息带有颜色,便于阅读
                "-std=c++20",     // 指定 C++ 标准为 C++20
                "-Wall",          // 启用所有警告
                "-Wextra",        // 启用额外的警告
                "-fno-inline",    // 禁用内联
                "-IXXX/asio-1.19.2/include", // 添加路径,用于查找头文件,asio-1.19.2
                "-g",             // 生成调试信息,便于后续调试。
                "-DASIO_ENABLE_HANDLER_TRACKING", // 预处理器宏,启用Asio的Handler Tracking
                "${file}",        // 当前活动文件的路径,在执行时自动替换为当前正在编辑的文件
                "-lwsock32",      // 链接 Windows socket 32 库
                "-lws2_32",       // 链接 Windows 2 socket 32 库
                "-o",             // 指定输出文件的名称
                "${fileDirname}\\${fileBasenameNoExtension}.exe", // 生成的可执行文件的路径和名称
            ],
            "options": {
                "cwd": "${fileDirname}"    // 任务执行时的工作目录,即当前文件所在的目录
            },
            "problemMatcher": [   // 用于解析编译器的输出,将错误和警告信息与代码中的行号关联
                "$gcc"            // 适用于 GCC 编译器的输出格式
            ],
            "group": {
                "kind": "build",
                "isDefault": true // 将此任务设为默认构建任务
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

 《c_cpp_properties.json》配置

{  
    "configurations": [  
        {  
            "name": "Win32",              // 配置的名称,Windows 平台
            "includePath": [              // 用于指定头文件搜索路径。  
                "${default}",             // 系统的标准库路径和其他已配置的路径
                "XXX/asio-1.19.2/include" //  Asio 库的头文件
            ],  
            "defines": [                  // 包含各种宏定义
                "_DEBUG",                 // 表示编译器在调试模式下工作
                "UNICODE",                // 启用 Unicode 支持
                "_UNICODE"                // 确保 API 调用使用 Unicode 字符集
            ],  
            "windowsSdkVersion": "10.0.22621.0"  // Windows SDK 的版本号
        }  
    ],  
    "version": 4                          // 配置文件的版本号
}

问题与解决

1、找不到asio.hpp not find asio.hpp

step_0.cpp:4:10: fatal error: asio.hpp: No such file or directory
    4 | #include <asio.hpp>
      |          ^~~~~~~~~~
compilation terminated.

《tasks.json 》"args"字段增加"-IXXX/asio-1.19.2/include"

在《c_cpp_properties.json》"includePath"字段增加"XXX/asio-1.19.2/include"

2、undefined reference to `__imp_XXX'

《tasks.json 》"args"字段增加"-lwsock32","-lws2_32"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值