3

我在我的 xcode 项目中使用 SDL 框架时遇到问题,我的主要(目前项目中的所有内容)目前看起来像这样:

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

int main(int argc, const char * argv[])
{
// insert code here...
std::cout << "Hello, World!\n";
return 0;
}

我在构建时收到的错误是:

架构 x86_64 的未定义符号:“_main”,引用自:从 crt1.10.6.o 开始(也许您的意思是:__Z8SDL_mainiPPKc) ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码 1(使用 -v 查看调用)

它不会给我关于找不到框架的错误。我已经在 Stackoverflow 上查看了这个问题,我确实找到了一个人,他们的框架在他们的操作系统上的错误位置。但是我已经尝试了所有地方(/library/frameworks && /~username~/library/frameworks && /system/library/frameworks),但仍然没有运气。

附加信息:然而,在互联网上搜索后,我确实注意到官方网站http://www.libsdl.org/download-1.2.php 没有 OSX 版本的开发库。虽然许多关于如何在 OSX 上使用 SDL 的教程都说这些是必需的。

我也通过 Xcode 本身添加我的库,而不是通过拖放。Xcode 似乎承认它。

如果有人可以提供帮助,将不胜感激,因为这个错误而发疯。

更新:

错误

仍然没有运气,我已经按照下面的解决方案提供的每一步操作。也许这个截图有任何帮助。

main() 函数已更正,但没有帮助。我尝试更改头文件的路径,我迷失了这个。有没有人可以在 xcode 中构建它?

更新2:

该建议有效,但现在它给了我这个警告,它不会让我运行应用程序。

在此处输入图像描述

固定的!我删除了构建设置中的路径。奇怪的是,我仍然不知道出了什么问题,无论哪种方式。非常感谢您的帮助!成就了我的一天!

4

1 回答 1

3

我看到三个可能的问题。第一个问题是如何在代码中包含 SDL.h。您应该在 SDL.h 中包含以下代码:

#include "SDL.h"

第二个可能的问题是您没有将文件 SDLMain.h 和 SDLMain.m 添加到您的项目中。这些文件是在 Mac OS X 上编译 SDL 代码所必需的。这些文件位于 SDL 磁盘映像的 devel-lite 文件夹中。

第三个可能的问题是您的项目没有链接到 Cocoa 框架。SDL 的 Mac 版本使用 Cocoa,因此您的项目中需要 Cocoa 框架。

以下文章将引导您为 SDL 设置 Xcode 4 项目:

在 Xcode 4 中使用 SDL

更新

我注意到您定义 main() 函数的方式可能存在问题。您在 char 和 * 之间有一个空格,在 * 和 argv 之间有另一个空格,这可能会导致错误。我的 SDL 代码中的 main() 函数定义如下:

int main(int argc, char *argv[])
于 2012-09-18T18:58:16.567 回答