gpt4 book ai didi

c++ - SDL 2.0 编译,但无法运行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:18 32 4
gpt4 key购买 nike

我在 Xubuntu 64 位上使用最新的 SDL 2.0 版本。我通过源代码上提供的安装脚本进行安装。

编译运行良好,但是当尝试打开字体或图像(无论其扩展名如何)时,它总是无法打开。

#include <iostream>
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>


int main (int argc, char *argvp[])
{


if (SDL_Init(SDL_INIT_EVERYTHING) == -1)
{
cout << SDL_GetError() << endl;
}


if (TTF_Init() == -1)
{
std::cout << TTF_GetError() << std::endl;
return 2;
}


TTF_Font *font1 = NULL;

font1 = TTF_OpenFont("SourceSansPro-Regular.ttf", 20);
if (font1 == NULL)
{
std::cout << "ERROR OPENING FONT = " << TTF_GetError() << std::endl;
}

TTF_CloseFont(font1);
SDL_Quit();
return 0;
}

我用

编译
g++ -Wall fontTEST.cpp -o TEST -lSDL2 -lSDL_ttf (NOTE that SDL_ttf installs as such, not as SDL2_ttf)

并得到以下错误:Failed to load font: 0 Couldn't load font file

图像也会发生这种情况。我已经尝试过使用不同的字体和图像,显然如果我使用 SDL 1.2 编译它就可以工作,而不是使用 2.0。另外,为什么提供的安装脚本会在/user/local/中安装 lib 和 include 文件夹?

我将它们移到了/usr/但问题仍然存在。

最佳答案

记住以下几点:

  • 在 Unix 上,文件路径区分大小写
  • 如 Xonar 的评论所述,波浪符“~”扩展是一个 shell 功能,它在 C/C++ 程序中不起作用,您应该使用真实路径。

strace 日志清楚地表明路径有问题。

您应该尝试以下操作:

  • 将您的字体文件重命名为“font.ttf”
  • 放在/home/user/font.ttf中
  • 在您的代码中使用“/home/user/font.ttf”作为路径。

关于c++ - SDL 2.0 编译,但无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688001/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com