gpt4 book ai didi

c - 当工作区位于 ~/src 但不在/tmp 中时,VS Code 在 "stdio.h"下显示红色波浪线

转载 作者:行者123 更新时间:2023-12-04 08:04:06 26 4
gpt4 key购买 nike

Visual Studio Code 在 #include <stdio.h> 下显示红色波浪线当工作区位于 ~/src 时,在编辑器中但不是当它在 /tmp 中时.两个工作区都可以很好地编译和运行代码。这只是编辑器中的错误。
我可以用一个非常简单的 Hello World 重现这个C 工作区。我正在使用 CMake 和 CMake 工具。版本:

  • macOS Catalina 10.15.7
  • CMake 3.19.5
  • Visual Studio 代码 1.53.2
  • C/C++ 扩展 1.2.1
  • CMake 工具扩展 1.6.0

  • 这是目录结构:
    % tree hello_world
    hello_world
    ├── CMakeLists.txt
    └── main.c
    这是 CMakeLists.txt :
    cmake_minimum_required(VERSION 3.0.0)
    project(hello_world VERSION 1.0.0)

    add_executable(hello_world main.c)
    这是 main.c :
    #include <stdio.h>

    int main(int argc, char** argv)
    {
    printf("hello world\n");
    return 0;
    }
    这是 ~/src 的截图:
    src-workspace
    这是 /tmp 的截图:
    tmp-workspace
    编辑 :在 Gist 上发布了两个工作区的“C/C++:日志诊断”的输出.这是差异的一部分:
         Includes:
    - /usr/local/include
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include
    - /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
    - Frameworks:
    - /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks
    所以这解释了为什么它不能在一个工作区中找到它,但不能解释为什么路径不同。

    最佳答案

    编辑 : 这是 a bugversion 1.2.2 中修复的 VS Code C/C++ 扩展中.

    这显然是一个 FAQ :

    Q: Why do I see red squiggles under Standard Library types?

    A: The most common reason for this is missing include paths and defines. The easiest way to fix this on each platform is as follows:

    Linux/Mac: Set "intelliSenseMode": "clang-x64" or "intelliSenseMode": "gcc-x64" and compilerPath in c_cpp_properties.json to the path to your compiler.


    我只换了 intelliSenseModeclang-x64 (未设置),离开 compilerPath独自一人,这解决了问题。我不明白为什么源目录会导致“缺少包含路径”,或者为什么这种模式不是默认模式,但它现在可以工作。
    编辑 : 我创建了 issue #7014microsoft/vscode-cpptools GitHub 项目。
    编辑 : 我的问题被骗到 issue #6992 ,已在 version 1.2.2 中修复.
    intelliSenseMode

    关于c - 当工作区位于 ~/src 但不在/tmp 中时,VS Code 在 "stdio.h"下显示红色波浪线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66306945/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com