在Mac OS X 10.11中的c++中未定义_main



我目前正在使用allegro 5.0和c++编写一个c++游戏。我最终会让它在mac, linux, windows,可能还有android和iPhone上工作。目前它可以在linux上编译和运行(在arch linux最新版本上测试),但在mac上有一个小问题:

使用apple提供的g++,它报错链接错误,_main未定义。但是,我检查了又检查,并且main在我的文件中明确定义了。它肯定是这样的,因为它在linux上编译和运行,但我不明白。

我在谷歌上搜索了很多天,搜索了很多术语(太多了,无法列出),但没有发现任何与mac和main没有定义有关的东西。我是不是漏掉了什么?有什么我需要在mac上特别做的吗?最后要注意的是,当我与allegro_main链接时。它连接起来,然后崩溃。在linux上不需要链接这个库。我通过端口使用allegro5。值得注意的是,用于在mac上编译的sh脚本是comp_mac.sh,而linux只是compp .sh。注意,您可能需要修改sh脚本以便在您的环境中进行编译。到目前为止,这些只在我的环境(macports)上进行了测试。

我的代码可以在这里找到:http://github.com/2mb-solutions/horseshoes/

谢谢你对我的帮助。

迈克尔。

"_main"未定义符号错误发生,因为您没有链接到allegro_main插件。

正如Allegro 5手册所规定的,在C和c++项目中,包含main()函数的文件必须包含核心头文件allegro5/allegro.h。另外,你必须链接allegro_main插件。

使用pkg-config:

可能最简单<>之前pg -config——cflags——libs allegro_5 allegro_ttf-5 allegro_audio-5 allegro_acodec-5 allegro_font-5 allegro_main-5之前

您可以将该命令放在反引号(')中,以便在构建命令中包含pkg-config的输出。

相关内容

  • 没有找到相关文章

最新更新