[英]C++, Mac OS X, Xcode 8 : Compile Boost : Set deployment target to OS X 10.11
[英]_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.