簡體   English   中英

對“WinMain”的未定義引用:使用 Cygwin、SDL2 和 Netbeans 時

[英]undefined reference to `WinMain' : When using Cygwin, SDL2 and Netbeans

任何幫助在這里將不勝感激。 我真的絞盡腦汁在這,sooo。

我已經安裝了 cygwin 和 Netbeans,並且已經成功地開發、編譯和運行了一個小的 SDL-1.2 Windows 游戲,沒有任何問題。

現在問題來了,我已經安裝了 SDL2 並且正在嘗試編譯。 具體鏈接。

我和以前一樣,將“libSDL2.a”和“libSDL2main.a”添加到我在 Netbeans 中的項目的鏈接器選項中; 但我收到“對‘WinMain’的未定義引用”錯誤

現在,我對此進行了調查,似乎鏈接器無法將我的 main() 函數鏈接到 WinMain 函數。

我看到的另一個答案是將“-lmingw32 -lSDLmain -lSDL”添加到鏈接器選項但我不使用mingw,我使用的是cygwin,cygwin相當於mingw32.lib

我想主要問題是:如果我使用 Cygwin、SDL2 和 Netbeans,我給鏈接器的選項是什么?

任何幫助將不勝感激。

您是否在#undef main前面使用了#undef main進行了測試?

/*
 * If 'main' is defined we clear that definition
 * to get our default 'main' function back.
 */
#ifdef main
# undef main
#endif /* main */

int main(int argc, char** argv)
{
    // ...
    return 0;
}

在 Cygwin 和 SDL 中使用 Netbeans,包括 SDL.h 會產生奇怪的錯誤


也可能有幫助:

我收到“對‘WinMain@16’的未定義引用”

在 Visual C++ 下,您需要與 SDL2main.lib 鏈接。 包括 Dev-C++ 在內的 gcc 構建環境下您需要鏈接“sdl-config --libs”的輸出,通常為:-lmingw32 -lSDL2main -lSDL2 -mwindows

( http://wiki.libsdl.org/FAQWindows#I_get_.22Undefined_reference_to_.27WinMain.4016.27.22 )

對於我剛剛用 Cygwin 構建的庫,我添加了以下編譯器標志:

 -shared -Wl,--out-implib,lib$(LIB_NAME).dll.a

這使我能夠在沒有可怕的“缺少 WinMain”錯誤消息的情況下構建我的庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM