c++ - 在 XCode 上使用 SDL 框架时遇到问题

标签 c++ xcode macos sdl libraries

我在我的 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;
}

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

Undefined symbols for architecture x86_64: "_main", referenced from: start in crt1.10.6.o (maybe you meant: __Z8SDL_mainiPPKc) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

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

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

此外,我通过 Xcode 本身添加我的库,而不是通过拖放。 Xcode 似乎能识别它。

如果有人能提供帮助,将不胜感激,为这个错误而疯狂。

更新:

error

仍然不走运,我已按照以下解决方案提供的每个步骤进行操作。也许这张截图有帮助。

main() 函数已更正,但没有帮助。我尝试更改头文件的路径,我在这个上迷路了。有没有人可能有任何替代方案来在 xcode 中构建它?

更新 2:

这个建议奏效了,但是现在它给了我这个警告,不允许我运行应用程序。

enter image description here

已修复!我删除了build设置中的路径。奇怪的是,无论哪种方式,我仍然不知道出了什么问题。非常感谢您的帮助!让我开心!

最佳答案

我看到三个可能的问题。第一个问题是如何在代码中包含 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 项目设置:

Using SDL with Xcode 4

更新

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

int main(int argc, char *argv[])

关于c++ - 在 XCode 上使用 SDL 框架时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481229/

相关文章:

c++ - 是否允许动态数组分配

c++ - 当数据包含空格时,如何将制表符分隔文件的内容加载到 C++ 中的二维字符串 vector 中?

ios - 如何根据 subview 的高度设置堆栈 View 的高度?

swift - swift 中 == true 和 != false 之间有区别吗?

c++ - 是否有适用于 Mac OS X 的好(最好是免费的)面向对象建模应用程序?

c++ - 使用 ITK 访问 tif 图像的像素值

c++ - 友元函数必须在同一个文件中吗?

ios - 配置文件不包含证书

c - 在结构中插入定义为函数指针的 C 函数

ios - 应用程序加载器iOS问题