簡體   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