SDL_ttf找不到“SDL.h”,但main.cpp可以

2024-01-31

我正在编写一个 make 文件来编译一个非常简单的 SDL2 程序。

到目前为止,它编译 SDL2 得很好,现在我正在编译扩展框架 SDL2_image 和 SDL_ttf。

看起来MAKE正确地找到了SDL_ttf.h,但是SDL_ttf.h找不到“SDL2/SDL.h”。

这是错误:

In file included from main.cpp:3:
/Library/Frameworks/SDL2_ttf.framework/Headers/SDL_ttf.h:30:10: fatal error:
  'SDL2/SDL.h' file not found
#include <SDL2/SDL.h>
         ^
1 error generated.
make: *** [main.o] Error 1

请注意,当我像这样包含 SDL2 时:

#include <SDL2/SDL.h>

我什至无法编译一个基本程序(没有扩展的 SDL2)。我通过将其更改为这样来使其工作:

#include "SDL.h"

(我还听说后一种语法对于可移植性来说更正确?)

有任何想法吗?

我在 OS X Mavericks 上执行此操作

这是我的文件: 主程序

#include <iostream>
#include "SDL.h"
#include "SDL_ttf.h"
#include "SDL_image.h"

int main(int argc, char * arg[])
{
    if(SDL_Init(SDL_INIT_EVERYTHING) != 0)
    {
         std::cout << "ERROR" <<std::endl;

        return -1;
    }

    SDL_Window * window = SDL_CreateWindow("Name", SDL_WINDOWPOS_CENTERED,
    SDL_WINDOWPOS_CENTERED,
    640,
    480,
    SDL_WINDOW_OPENGL);
     if (TTF_Init() == -1)
     {
     sdl::cout << "SDL_ttf failed" << std::endl;
     }

    SDL_Surface* tempSurface = IMG_Load("test.png");

    if (tempSurface == nullptr)
    {
    std::cout << "failed to load test.png" << std::endl;
    }

    SDL_FreeSurface(tempSurface);

    SDL_Delay(5999);

    SDL_DestroyWindow(window);

    SDL_Quit();

    return 0;

}

makefile

CXX = clang++
SDL = -framework SDL2 -framework SDL2_ttf -framework SDL2_image

CXXFLAGS = -Wall -c -std=c++11 -I /Library/Frameworks/SDL2.framework/Headers -I       /Library/Frameworks/SDL2_ttf.framework/Headers -I    /Library/Frameworks/SDL2_image.framework/Header

LDFLAGS = $(SDL) -F /Library/Frameworks
EXE = test

all: $(EXE)

$(EXE): main.o
$(CXX) $(LDFLAGS) $< -o $@
main.o: main.cpp
$(CXX) $(CXXFLAGS) $< -o $@

clean:
    rm *.o && rm $(EXE)

Edit:

我按照 DMG 文件中的说明将 SDL2 和 SDL2_ttf 安装到 /Library/Frameworks 文件夹中。


我相信您需要 SDL2_ttf 才能与 SDL2 一起使用。

SDL_ttf (2.0.11) 需要 SDL (1.2)

并且 SDL2_ttf (2.0.12) 需要 SDL2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SDL_ttf找不到“SDL.h”,但main.cpp可以 的相关文章

随机推荐

  • Internet Explorer XML/SVG 自定义命名空间 - 生成额外/错误的命名空间

    我正在尝试在网页内渲染 SVG 文档 然后通过 JavaScript 捕获该 SVG 文档的标记 然后 该 SVG 标记被发送回服务器进行处理 我的 SVG 文档的根目录类似于以下内容
  • 在 Twitter 搜索 API 1.1 中排除转发

    在这里 我尝试使用搜索 api 1 1 检索带有 V57 标签的推文 通过使用转储并查看搜索词的结果 search tim connection gt get search tweets array q gt V57 count gt 5
  • 覆盖 Logback 错误输出

    在我的自定义异常类中 我已经重写了toString Override public String toString final String msg getLocalizedMessage base String str getClass
  • 给定一个双调数组和数组中的元素 x,在 2log(n) 时间内找到 x 的索引

    首先 这个问题的双调数组被定义为对于某些索引K在长度数组中N where 0 lt K lt N 10到K是单调递增的整数序列 K到N 1是单调递减的整数序列 例子 1 3 4 6 9 14 11 7 2 4 9 它从 1 单调增加到 14
  • 如何查找 MySQL 表中的所有大写字符串?

    我最初认为这是微不足道的 然后认为 二进制 可以做到这一点 我现在不确定 Name John MARY Kin TED 我只想查询 MARY 和 TED 它们都是大写的 我该如何查询这个 如果您的排序规则不区分大小写 那么您需要使用BINA
  • Love2d和Lua中的继承

    我有一个包含这组值和函数的类 require class entity class new function entity new self x 100 self y 100 self width 32 self height 32 sel
  • 表单提交和Ajax同时使用onsubmit?

    如果之前有人问过这个问题 我很抱歉 但我需要通过表单提交和单击提交时触发的 ajax 调用来发送表单数据 原因是因为用户被重定向 并且我想预先将 det 表单数据存储到我的数据库中 所以我尝试使用表单 onsubmit 和 fire 提交表
  • ASP.NET 中

    我有一个在 asp net 框架上使用 SVG 坐标的网页 通过尝试错误 如果我取出大部分标签 我不会收到错误 但如果所有标签都在我收到以下错误 Compiler Error Message CS8095 Length of String
  • Asp.Net - 检测到页面上没有 javascript? (已更名标题)

    我有一个页面 在 TabContainer 中显示其所有内容 但如果浏览器上禁用了 javascript 它只会显示一个空白页面 我可以添加一个
  • 当 sed 在 mingw 中就地编辑时权限被拒绝

    我正在使用 mingw sed i s a b test txt sed preserving permissions for sed003480 Permission denied 我可以触摸 rm当前目录中的文件 这是由 Windows
  • ios 7 UiView 框架问题

    我在 iOS6 和 iOS7 中运行相同的应用程序 其中有导航栏 它在 iOS6 上运行良好 但在 iOS7 中 所有视图都有点向上 就像根本没有考虑导航栏一样 我尝试更改模拟指标选项中的顶栏属性 但它不起作用 在 iOS6 中 它从导航栏
  • 在 POST/batches 请求中使用现有的 SparkSession

    我正在尝试使用Livy远程提交多个Spark jobs 假设我想执行以下操作spark submit远程任务 包含所有选项 spark submit class com company drivers JumboBatchPipelineD
  • Serilog - 无法根据属性记录到多个文件

    您好 我正在尝试使用以下命令在一个文件中记录一些消息 在另一个文件中记录其他消息Serilog 我尝试过以下配置 Log Logger new LoggerConfiguration WriteTo Map type audit name
  • ndb async 是否保证在应用程序请求完成后执行?

    我正在使用 ndb 编写一个分析模型 该模型根据应用程序请求记录一些数据 每个请求通过ndb put async调用一个ndb请求来记录数据 而客户端不关心结果 本质上 我不希望应用程序请求等待保存统计数据以进行分析 然而 我对官方文档的解
  • Android设置壁纸出错了

    所以我很久以前就在开发壁纸更换器并发布了它 一段时间后 我开始收到壁纸尺寸调整不正确的评论 我还尝试了不同尺寸的鸸鹋 它们是正确的 我正确地缩放位图等 但不知何故 android倾向于将壁纸重新缩放得更大 有办法避免吗 我的代码 Displ
  • 与 VB.NET 中的 Array() 等效吗?

    在 VB6 中你可以这样做 Dim a As Variant a Array 1 2 3 你能在 VB NET 中使用特定类型做类似的事情吗 Dim a As Integer a Array 1 2 3 Dim a As Integer N
  • 命名空间“std”中没有名为“unary_function”的模板;您的意思是“__unary_function”吗?

    刚刚将我的 Xcode 升级到 15 0 突然它开始在 RCT Folly 中出现以下错误 No template named unary function in namespace std did you mean unary funct
  • 在运行时转储 gcov 数据

    我正在使用 gcov 收集我正在从事的 C 项目的代码覆盖率数据 据我所知 一旦程序完成后退出 gcov 就会转储代码覆盖率数据 如何收集长时间运行的进程的 gcov 数据 比如说 我的程序是一个操作系统的内核 该操作系统在永不关闭的服务器
  • iOS:Xcode 中的 ImageMagick 编译器警告

    我在 iOS 项目中使用 ImageMagick 但是该库已经过时 因为以前的开发人员使用了源代码 我使用的是 Xcode 6 3 2 我想使用 Cocoapods 将 ImageMagick 集成到项目中 而不是复制源文件 然而 当我将
  • SDL_ttf找不到“SDL.h”,但main.cpp可以

    我正在编写一个 make 文件来编译一个非常简单的 SDL2 程序 到目前为止 它编译 SDL2 得很好 现在我正在编译扩展框架 SDL2 image 和 SDL ttf 看起来MAKE正确地找到了SDL ttf h 但是SDL ttf h