找不到SDL2 begin_code.h 文件

问题描述 投票:0回答:1

我最近刚刚开始探索 SDL 2,并在 Linux 上下载了

libstl2-dev
(我正在使用 Mint,如果这很重要的话)。

但是,当我包含标题时

#include <SDL2/SDL.h>
,vim 不断告诉我一个错误
In included file: 'begin_code.h' file not [clang: pp_file_not_found]
,请注意,我在 vim 中使用 coc。

我做了一些研究,但无法解决问题。特别是,我注意到了this post,但问题是关于 VS code 的,我不知道如何将其应用到 vim。

下面是我的代码的一部分。

#include "board.h"
#include <iostream>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_timer.h>

void Board::help_init();
c++ clang sdl-2 coc.nvim
1个回答
2
投票

大多数 Linux 发行版 SDL 开发包应包含可用的 pkg-config 工具,允许您查询可传递给编译器的包含和库位置/名称:

g++ main.cpp `pkg-config --cflags --libs sdl2`

(或者您可以使用

$()
进行子命令捕获而不是反引号)

在此 Debian 盒子上

pkg-config
返回这些路径/标志:

$ pkg-config --cflags sdl2
-D_REENTRANT -I/usr/include/SDL2

$ pkg-config --libs sdl2
-lSDL2

请注意,

-I
路径意味着您应该
#include <SDL.h>
和朋友,而不是
#include <SDL2/SDL.h>

// wrong
//#include <SDL2/SDL.h>
//#include <SDL2/SDL_image.h>
//#include <SDL2/SDL_timer.h>
// right
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_timer.h>

尽管出于某种原因,SDL 附加库(如 SDL-image)的 Debian 打包已将 pkg-config 包名称大写:

g++ main.cpp `pkg-config --cflags --libs sdl2 SDL2_image`
© www.soinside.com 2019 - 2024. All rights reserved.