Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Can';t链接到XCode4中的SDL!_Macos_Xcode4_Sdl - Fatal编程技术网

Macos Can';t链接到XCode4中的SDL!

Macos Can';t链接到XCode4中的SDL!,macos,xcode4,sdl,Macos,Xcode4,Sdl,我彻底失望了!今晚我试图适应SDL,但我在试图通过XCode4链接到SDL时遇到了困难!这就是我所做的。我下载了SDL框架运行库和开发XTRA的v1.2.14。我遵循了所有的方向(在/Library/Frameworks中拖放SDL.framework),直到我意识到模板在XC4中的工作方式与在XC3.x中的工作方式不同。我在模板上下赌注,并试图将框架添加到一个香草可可应用程序中。(从内置的应用程序模板创建)我添加了SDLMain.h.m和.nib文件并尝试构建。我立刻收到一个错误,说它找不到“

我彻底失望了!今晚我试图适应SDL,但我在试图通过XCode4链接到SDL时遇到了困难!这就是我所做的。我下载了SDL框架运行库和开发XTRA的v1.2.14。我遵循了所有的方向(在/Library/Frameworks中拖放SDL.framework),直到我意识到模板在XC4中的工作方式与在XC3.x中的工作方式不同。我在模板上下赌注,并试图将框架添加到一个香草可可应用程序中。(从内置的应用程序模板创建)我添加了SDLMain.h.m和.nib文件并尝试构建。我立刻收到一个错误,说它找不到“SDL.h”。我手动调整了所有配置的标题搜索路径设置,尽管我认为如果我直接引用框架,这应该是不必要的。我以这种方式绕过了丢失的头文件,但开始遇到链接器错误

"_SDL_main", referenced from:
      -[SDLMain applicationDidFinishLaunching:] in SDLMain.o

我已经尝试了所有不同的格式副本来满足我的链接器和编译器。我已经将框架移动到了~/Library/Frameworks下的用户文件夹中,我还玩弄了和“”导入语法。我开始了一个全新的项目,重复了所有的事情。我迷路了!有人能帮助吗?< /p> < p>我不知道你是否还在寻找,但是我认为这是因为SDL正在寻找C符号名称,但是你的主要是在C++文件中声明的。 你必须做到:

extern "C" int main(int argc, char *argv[])
{
    ...
}
在SDL_main.h中有“记录”:

/** The application's main() function must be called with C linkage,
 *  and should be declared like this:
 *      @code
 *      #ifdef __cplusplus
 *      extern "C"
 *      #endif
 *  int main(int argc, char *argv[])
 *  {
 *  }
 *      @endcode
 */

我知道这很古老,但如果现在有人偶然发现这一点

默认情况下,XCode使用声明创建主函数

int main(int argc, const char * argv[])
int main(int argc, char * argv[])
而SDL正在寻找具有声明的函数

int main(int argc, const char * argv[])
int main(int argc, char * argv[])
注意char*argv[]中缺少常量。似乎当SDL查找char*[]时,Xcode会给它一个const char*[]并导致它找不到符号


我真希望SDL停止重命名我的函数!一定有更好的解决方案,但现在就可以了。

你的
main()
函数有两个参数吗?是的,它有两个参数:int main(int argc,char**argv)哇,我发帖了,忘了发帖的地方或原因了!你到底想干什么???哦,是的,iOS的星控。我读了源代码,然后在切线上跑掉了…谢谢,这是完全有意义的,尽管我还没有回去再试一次。谢谢你的提示!:)