在终端中编译SDL2错误(对如何包含SDL2库感到困惑)

Compiling SDL2 Error in Terminal (Confused about how to include SDL2 library)

本文关键字:SDL2 何包含 终端 编译 错误      更新时间:2023-10-16

我现在正在学习SDL2,大部分时间我都在XCode中编写代码。然而,我想在终端中运行我的程序来使用valgrind,但每当我尝试时,我都会得到这个错误:

fatal error: 'SDL2/SDL.h' file not found

我用一种非常简单的方式编译如下:

g++ Camera.cpp LTexture.cpp LTimer.cpp LWindow.cpp Player.cpp Tile.cpp TileMap.cpp main.cpp -o main

我知道我应该以某种方式包含SDL2库,但我不确定如何做到这一点。现在,该框架位于文件夹/Library/Frameworks/SDL2.framework 中

如有任何帮助,我们将不胜感激。提前谢谢。

添加

-I/Library/Frameworks/SDL2.frameworks/Headers 

到您的g++命令并更改

'SDL2/SDL.h'

仅包括

'SDL.h'

因为/Library/Frameworks/SDL2.frameworks/Headers不包含SDL2文件夹(通常)


现在您已将#include "SDL2/SDL.h"更改为#include "SDL.h",您希望打开Xcode项目,选择目标,转到构建设置并将/Library/Frameworks/SDL2.frameworks/Headers添加到Header Search Paths,以修复Xcode的"找不到"SDL.h"错误消息。


更新:

另一种方法是链接(使用ln)/Library/Frameworks/SDL2.frameworks/Headers/usr/local/include/SDL2,将-I/usr/local/include/SDL2添加到g++命令中并使#include保持原样('SDL2/SDL.h'