我最近刚刚开始探索 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();
大多数 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`