繁体   English   中英

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

[英]_main not defined on Mac OS X 10.11 in c++

我目前正在使用Allegro 5.0和C ++编写C ++游戏。 我最终将使其在Mac,Linux,Windows以及可能的android和iPhone上运行。 目前,它可以在linux上编译和运行(已在arch linux上进行了最新测试),但是在mac上存在一个小问题:

使用苹果提供的g ++,它抱怨链接错误,_main未定义。 但是,我已经检查了一下,并且main绝对在我的文件中定义。 无论如何,它肯定是必须的,因为它可以在Linux上编译并运行,但是我无法弄清楚。

我已经在Google上搜索了很多天和很多术语(太多了,无法列出),却没有发现与mac有关的任何内容,并且main尚未定义。 会有什么我想念的吗? 我需要在Mac上做些特别的事情吗? 最后要注意的一点是,当我与allegro_main.a链接时,它链接但崩溃了。 在Linux上,不需要与此库链接。 我通过macports使用allegro5。 还需要注意的是,用于在Mac上编译的sh脚本是comp_mac.sh,而Linux只是comp.sh。 请注意,您可能需要修改sh脚本才能在您的环境中进行编译。 到目前为止,这些仅在我的环境(macports)上进行了测试。

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

感谢您能获得的所有帮助。

迈克尔

发生“ _main”未定义符号错误,因为您未与allegro_main插件链接。

正如Allegro 5手册中指定的那样 ,在C和C ++项目中,包含main()函数的文件必须包含核心头文件allegro5/allegro.h 此外,您必须与allegro_main插件链接。

使用pkg-config可能是最简单的:

pkg-config --cflags --libs allegro-5 allegro_ttf-5 allegro_audio-5 allegro_acodec-5 allegro_font-5 allegro_main-5

您可以将该命令放在反引号(`)中,以将pkg-config的输出包括在build命令中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM