【问题标题】:Why does Intellisense with Emscripten does not find the include path of SDL2/SDL.h?为什么 Intellisense with Emscripten 找不到 SDL2/SDL.h 的包含路径?
【发布时间】:2020-05-06 07:43:43
【问题描述】:

我正在 Win10 上开发一个用于 Webassembly 的 C++ 程序。

#include <SDL2/SDL.h>
#include <stdlib.h>
#include <emscripten.h>

int main() {
    printf("Hello World!");
}

Emscripten 本身会正确创建 .wasm 文件。但是 Visual Studio Code 中的 Intellisense 始终显示找不到 the source of #include &lt;SDL2/SDL.h&gt;。我的 c_cpp_properties.json 看起来像这样:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "E:\\PROGRAMS\\emsdk-master\\upstream\\emscripten\\system\\**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "E:\\PROGRAMS\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

我在...\\emsdk-master\\upstream\\emscripten\\system\\" 下找不到目录 SDL2。我做错了什么?

【问题讨论】:

    标签: c++ c visual-studio-code webassembly emscripten


    【解决方案1】:

    假设您使用的是 Emscripten Ports 版本的 SDL2(通过 -s USE_SDL=2),您需要将安装的 Emscripten Ports 包含目录添加到您的 "includePath"

    它通常位于您的用户个人资料中的.emscripten_cache/wasm-obj/include(例如C:\Users\PowerNow\.emscripten_cache\wasm-obj\include)。

    此目录可能仅在您第一次使用-s USE_SDL=2 选项(或其他端口的等效选项)运行emccem++ 后存在。

    "includePath": [
        "${workspaceFolder}/**",
        "E:\\PROGRAMS\\emsdk-master\\upstream\\emscripten\\system\\**",
        "C:\\Users\\PowerNow\\.emscripten_cache\\wasm-obj\\include"
    ],
    

    【讨论】:

    • 感谢苹果!是的,因为 SDL2 是一个端口。该文件夹位于\user\.emscripten_cache\wasm\include\
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2023-03-20
    • 1970-01-01
    • 2021-05-19
    • 2011-04-03
    • 1970-01-01
    • 2018-01-13
    相关资源
    最近更新 更多