我认为Ubuntu和OS X会有类似的接口,用于编译带有SDL的C / C ++程序,但我没有尝试,或者在Google上查找似乎正在工作。
我找到了Xcode的解决方案,但我没有使用Xcode。我正在从Sublime Text 2编写我的程序,并通过命令行编译,因为我更喜欢它并以更快的速度工作。
长话短说,我每次尝试都收到一系列错误,到目前为止,我已将SDL.framework
复制到我的/Library/Frameworks
目录中。
这是我最接近实际编译的内容:
[ 674 / 174 / 0 ] $ compcpsdl
Undefined symbols for architecture x86_64:
"_SDL_main", referenced from:
-[SDLMain applicationDidFinishLaunching:] in ccYYA0Ea.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
终端命令(即compcpsdl)
g++ -I/Library/Frameworks/SDL.framework/Headers main.cpp SDLmain.m -framework SDL -framework Cocoa
具有以下项目结构:
Project-Directory/
--- main.cpp
--- SDLMain.m
--- SDLMain.h
最后,以下源代码:
#include <iostream>
#include <SDL/SDL.h>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
看起来我正在做所有事情,但似乎没有任何工作。
任何想法的人?
答案 0 :(得分:3)
我认为SDL有时会对主要功能有点奇怪,它假设主功能是以一种方式定义的。请注意,我已将int argc
和char** argv
添加到主函数的定义中。
尝试:
int main (int argc, char** argv)
{
cout << "Hello World!";
return 0;
}
我也曾遇到过这个问题而且非常神秘。 有关详细信息,请参阅此stackoverflow问题:Why SDL defines main macro?