c++ 在VSCode中安装SDL2,编译器找不到SDL. h

tjvv9vkg  于 2023-02-06  发布在  Vscode
关注(0)|答案(1)|浏览(870)

我打算开始做一个游戏项目,但是当我尝试在VSCode中安装SDL2时,编译main.cpp时出现了一个问题:致命错误:标准开发语言2/标准开发语言h:无此文件或目录
我试着按照YouTube上的说明操作,但这个错误一直发生。我把"sdl2. dll"放到mainidocpp文件的同一目录下,这是我的"makefile"文件:

all:
    g++ -I src/include -L src/lib -o main main.cpp -lmingw32 -lSDL2main -lSDL2

我的c_cpp_属性. json:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/src/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:/msys64/mingw64/bin/g++.exe",
            "cStandard": "gnu17",
            "cppStandard": "gnu++23",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

所有这些文件都与main.cpp位于同一目录中

qco9c6ql

qco9c6ql1#

fatal error: <some_header_file.h>: No such file or directory

当编译器在代码中找不到#include语句指定的头文件时,会导致此问题。在这种情况下,原因肯定是包含路径中 * 没有 * SDL 2/SDL. h文件。
在c++中,要链接一个库,你必须告诉链接器在哪里可以找到一个已经编译好的库文件(在windows上,这是一个.dll或.lib文件),* 而且 * 你必须告诉编译器在哪里可以找到库头文件的位置,以便用你自己的代码编译。
这是因为编译器需要SDL头文件中包含的定义来确保您自己的代码得到正确编译,以便链接器以后能够将其与编译后的库链接起来。
根据你的问题你所做的
我将“SDL2.dll”放入main.cpp的同一目录
这使得链接器能够找到库,但是您还必须使编译器能够找到SDL头文件。
为此,您必须将SDL的include目录复制到您自己的include路径(在本例中,它似乎位于src/include/中)* 或 * 告诉编译器在哪里可以找到它,这可以使用-I标志来完成

相关问题