簡體   English   中英

C++ SDL2 - 無法理解的鏈接錯誤

[英]C++ SDL2 - Incomprehensible link error

我在 C++ CDT Eclipse 下設置了 SDL2。 我添加了包含路徑“........SDL2-2.0.3\i686-w64-mingw32\include”,庫路徑“........SDL2-2.0.3\i686-w64 -mingw32\lib" 並添加了庫 1."mingw32" 2."SDL2main" 3."SDL2"。 所以現在,如果我添加一個包含以下內容的 main.cpp:

#include <SDL.h>

int main(int argc, char* args[])
{

    return 0;
}

我可以很好地構建項目,但是如果我使用它:

#include <SDL.h>

int main()
{

    return 0;
}

該項目無法構建,我收到此錯誤:

信息:內部構建器用於構建 g++ "-IO:\Eclipse CDT Workspace\SDL OpenGL Lab\Libraries\SDL2\include\SDL2" -O0 -g3 -Wall -c -fmessage-length=0 -o main.o " ..\main.cpp" g++ "-LO:\Eclipse CDT Workspace\SDL OpenGL Lab\Libraries\SDL2\lib" -o "SDL OpenGL Lab.exe" main.o -lmingw32 -lSDL2main -lSDL2 O:\Eclipse CDT Workspace\SDL OpenGL Lab\Libraries\SDL2\lib/libSDL2main.a(SDL_windows_main.o):在函數console_main': /Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/main/windows/SDL_windows_main.c:140: undefined reference to SDL_main'collect2.exe 的引用:錯誤:ld 返回 1 退出狀態

我只是想知道為什么這個錯誤取決於我的主要方法,我想使用我想要的主要方法。 為什么會這樣,我該如何解決?

對不起,你被它困住了。 我還喜歡更簡單的 main,但 SDL 不支持它。

這里有更多關於 SDL 和 Windows 世界中的主要內容。 它沒有說明為什么你需要他們的 main 版本——但你確實需要。

我得到“對'SDL_main'的未定義引用”......

確保您將 main() 聲明為:

#include "SDL.h"

int main(int argc, char *argv[])

https://wiki.libsdl.org/FAQWindows

我有同樣的問題,不得不經歷很多操作。 我發現的是在調用 SDL.h 之前的簡單行#define SDL_MAIN_HANDLED。 我認為,SDL 有自己的主線,這就是為什么。 例如,在我的 .h 文件中,我每次都這樣寫:

#include <stdio.h>
#include <stdlib.h>
#define SDL_MAIN_HANDLED 
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>

暫無
暫無

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

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