windows系统中用vcpkg安装好c第三方库后,在vs code中运行程序后报错显示 : no such file and directory

在windows系统中,已经用vcpkg安装了c语言第三方库,怎么配置在vscode中的.vscode文件夹下的c_cpp_properties.json, launch.json, task.json这三个文件,使得编译器能识别已经安装好的第三方库。

按照网上给出的一些教程还是会报错。

过程请详细一点!

主要检查这几项:
1、路径【是否包含中文】【路径是否过长】
2、导入文件方式问题【改用绝对路径】

您可以尝试通过以下几种方式解决此错误:

  • 确保您已使用 vcpkg 正确安装了库。这包括使用正确的命令行参数并为您的系统指定正确的三元组。
  • 检查库是否正确链接到您的项目。在 Visual Studio Code 中,您可以通过转到项目的“属性”面板并确保该库列在 "Linker -> Input -> Additional Dependencies"下来执行此操作。
  • 确保库的头文件正确包含在您的源代码中。#include在 C 中,您可以使用指令包含头文件。
  • 检查文件或目录名称的拼写和大小写。在 C 中,文件名和目录名区分大小写,因此请确保在#include指令中或在代码中指定文件名或目录名时使用正确的大小写。
  • 确保文件或目录实际存在于您指定的位置。如果文件或目录已被移动或删除,您的程序将无法找到它。

如果这些步骤都没有帮助,则库本身或您的系统配置可能存在问题。在这种情况下,您可能需要寻求其他帮助或进一步解决问题。

要在 Visual Studio Code 中配置c_cpp_properties.json、launch.json和task.json文件以使用您通过 vcpkg 安装的第三方库,您需要执行以下操作:

在该c_cpp_properties.json文件中,您需要更新includePath属性以包含第三方库的头文件所在的目录。这将允许编译器在构建项目时找到头文件。

在该launch.json文件中,您需要在"MIMode"属性中指定 vcpkg 工具链文件的正确路径。vcpkg integrate install您可以通过运行命令找到工具链文件的路径。

在该task.json文件中,您需要更新"args"属性以包含 vcpkg 的必要命令行参数。这将允许构建任务在构建项目时使用 vcpkg 工具链和已安装的库。

下面是这些文件在您将它们配置为使用 vcpkg 工具链和已安装的库后的外观示例:

// c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${env.VCPKG_ROOT}\\installed\\x86-windows\\include",
                "${workspaceFolder}\\include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE"
            ],
            "windowsSdkVersion": "10.0.18362.0",
            "compilerPath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.29333\\bin\\Hostx64\\x64\\cl.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "msvc-x64"
        }
    ],
    "version": 4
}
// launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\bin\\Debug\\myproject.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "${env.VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
// task.json (continued)
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "build",
            "command": "gcc",
            "args": [
                "-g",
                "-o",
                "${workspaceFolder}/bin/Debug/myproject.exe",
                "${workspaceFolder}/src/main.c",
                "-I${workspaceFolder}/include",
                "-I${env.VCPKG_ROOT}/installed/x86-windows/include",
                "-L${env.VCPKG_ROOT}/installed/x86-windows/lib",
                "-lvcpkg"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ]
        }
    ]
}

本例中,includePathin属性c_cpp_properties.json指定第三方库的头文件所在目录,MIModein属性launch.json指定vcpkg工具链文件路径, inargs属性task.json指定vcpkg必要的命令行参数和include和已安装库的库目录。

请记住,这些只是示例,您可能需要修改路径和参数以匹配您的特定系统和项目设置。