使用自制软件安装 SDL2 和 Xcode

Posted

技术标签:

【中文标题】使用自制软件安装 SDL2 和 Xcode【英文标题】:Using homebrew installed SDL2 with Xcode 【发布时间】:2015-03-16 23:08:44 【问题描述】:

我已经使用 Homebrew 安装了 SDL2,但现在我不知道如何确保 Xcode 可以使用它!我导入了创建的库并将其添加到我的项目的构建阶段选项卡中。但是当我尝试构建时,我得到了错误'SDL2/SDL.h' not found

【问题讨论】:

【参考方案1】:

为了能够在 Xcode 上使用 SDL2,您必须设置两件事(通常是 SDL 所必需的):

在哪里可以找到头文件(以便 Clang 可以使用 -Iheader/path 编译) 在哪里可以找到 .dylib 以将其链接到项目(因为使用 brew,您没有真正的 .framework

要知道正确的路径,您应该调用sdl2-config --cflagssdl2-config --libs。在我的系统上,这些产生:

:~jack$ /usr/local/bin/sdl2-config --cflags
-I/usr/local/include/SDL2 -I/usr/X11R6/include -D_THREAD_SAFE

:~jack$ /usr/local/bin/sdl2-config --libs
-L/usr/local/lib -lSDL2

现在只需将第一个粘贴到您项目的other C flags 和另一个粘贴到other linker flags 字段中,您就可以开始了。

您可以在正确的字段中设置它们,Header Search Paths 对应于-ILibrary Search Path 对应于-l,但结果将是相同的。

【讨论】:

抱歉,实在是太忙了没能回复!感谢您回答几个问题,尽管当我将路径添加到其他 C 标志和其他链接器标志时,我可以访问 SDL,但它不像 #include <SDL2/SDL.h> 那样嵌套我如何确保它有效?如果我想以正确的方式进行操作,我应该将哪些路径放入标题搜索路径和库搜索路径中?因为我尝试过这样做,但还没有让它发挥作用。 哦,我如何让它与 SDL_ttf 一起使用?因为找不到! SDL2/SDL.h 的嵌套和使用正确的字段虽然谢谢! 好吧,没关系,我只是犯了一些错误,抱歉!感谢您的回答! 附注一下,如果你只将 header 和 lib 目录添加到项目的 Headr Search PathsLibrary Search Paths,你会分别得到错误,因为为了 Xcode 使用这些库,您需要告诉 Xcode,例如使用 -lSDL2 库,所以我建议您使用上述答案提供的第一种方法。【参考方案2】:

    从https://brew.sh安装安装的自制软件

    在终端输入brew install sdl2

    然后显示框架的路径(在xCode中选择项目文件>>构建设置>>头文件搜索路径)并使用cmd+shift+g输入/usr/local/include

    在“通用”“框架和库”中放入 libSDL2-2.0.0.dylib(此处为 /usr/local/Cellar/sdl2/2.0.14_1/lib)

    最重要的检查“签名和功能”中的“禁用库验证”

在这些步骤之后,代码开始为我工作。

【讨论】:

不要重复你的答案。如果您(或其他人)决定稍后更新/修改它,您将不得不重新审视一个。我建议发布一次,然后在另一个问题的 cmets 中发布链接。【参考方案3】:

    brew search sdl2

    brew install sdl2 sdl2_image sdl2_mixer sdl2_net sdl2_ttf

    config xcode Build Settings --> All --> Search Paths --> Header Serch Paths --> /usr/local/include

    配置 Xcode 常规 -> 添加框架和库 --> libSDL2-2.0.0.dylib

    测试你的代码

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

using namespace std;

int main() 

    if(SDL_Init(SDL_INIT_VIDEO) < 0) 
        cout << "SDL init failed." << endl;
        return 1;
    

    cout << "SDL Init succeeded." << endl;

    SDL_Quit();

    return 0;

【讨论】:

以上是关于使用自制软件安装 SDL2 和 Xcode的主要内容,如果未能解决你的问题,请参考以下文章

无法使用自制软件和 php7.4 安装 mcrypt

如何使用自制软件在 macOS 上安装 qt4?

在使用自制软件安装的 Mac 上使用 Image::Magick 注释图像

如何使用自制软件安装 imagemagick?

如何使用自制软件在 Mac OS X 上安装 GTest?

如果从今年开始 EOL,如何使用自制软件安装 php 5.6?