1

我正在尝试将 SDL_ttf 框架添加到 xCode 4.6。但是,当我使用它的一些功能时,我得到了错误:

架构 x86_64 的未定义符号:“_TTF_CloseFont”,引用自:main.o “_TTF_Init”中的 clean_up(),引用自:main.o “_TTF_OpenFont”中的 init(),引用自:main.o “_TTF_Quit”中的 load_files() ”,引用自:main.o 中的 clean_up() “_TTF_RenderText_Solid”,引用自:main.o 中的 _SDL_main ld:未找到架构 x86_64 的符号:错误:链接器命令失败,退出代码为 1(使用 -v查看调用)

使用的东西是类型 TTF_font*、TTF_Init()、TTF_OpenFont()、TTF_RenderText_Solid、TTF_CloseFont() 和 TTF_Quit()

我该如何解决这个问题?

我之前已经添加了 SDL 框架和 SDL_image 框架,它们都花了一些时间才能工作,主要是因为 xcode 找不到标头。Stackoverflow 提供了大部分帮助,谢谢。但这一次我已经挣扎了很久,必须寻求帮助。“clang: error: linker command failed with exit code 1 (use -v to see invocation)”的问题早先出现在stackoverflow上,但没有一个回复适用于这种情况。我还尝试按照不同的指南在 xCode 上设置框架。它没有工作,我认为这不是问题,因为我已经设法让 SDL 和 SDL_image 都工作。但是,如果它有帮助,我确实使用本教程添加它们: http: //lazyfoo.net/SDL_tutorials/lesson03/mac/xcode/index.php

由于上述问题,我目前正在关注 LazyFoos SDL 教程,并被困在这部分http://lazyfoo.net/SDL_tutorials/lesson07/index.php上。

(无关的小问题,为了让编译器编译主 SDL 框架,我必须在构建阶段的编译源中添加 -fno-objc-arc,(如何为项目中的单个文件禁用 ARC?)。我有不知道它做了什么,但它让我能够很好地运行程序,但是这以后会回来咬我吗?)

4

2 回答 2

0

您是否只看到 x86_64 架构的这些错误?最后我检查了一下,SDL 库不是为 64 位构建的。听起来快速简单的解决方法是将目标架构更改为 i386,它在 64 位版本的 Mac OS X 下仍然可以正常运行。

如果您真的希望您的应用程序构建为 64 位,请尝试使用MacPorts来获得 SDL_ttf.framework 的 64 位构建:

sudo port install libsdl_ttf-framework
于 2013-02-01T20:47:38.743 回答
0

我有同样的问题(当我切换目标架构时出现额外的错误),但解决了它。我意识到我忘记了您发布的安装新库的链接中的一个步骤:

http://lazyfoo.net/SDL_tutorials/lesson03/mac/xcode/index.php

第 3 步,您需要在项目构建设置中告诉链接器有关新库的信息。

于 2017-08-08T23:51:44.197 回答