cmake - एसएमएल 2 को स्थायी रूप से लिंक करने में विफल



static-linking sdl-2 (1)

इसका उत्तर यहां दिया गया है: एसडीएल 1.3 / 2.0 की स्थापना

इन्हें इन पुस्तकालयों के विरुद्ध लिंक करना है:

-lmingw32 -lSDL2main -lSDL2 -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid

मैं सीमके और एमएसवायएस मेकफील्स के साथ एक सरल एसडीएल 2 गेम बनाने की कोशिश कर रहा हूं।

मैं SDL2 को स्थिर रूप से लिंक करना चाहता हूं ताकि मैं SDL2.dll को शामिल किए बिना एकल निष्पादन योग्य वितरित कर सकूं।

यहाँ मेरी CMakeLists.txt फ़ाइल है:

project(racer-sdl)

cmake_minimum_required(VERSION 2.8)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_EXE_LINKER_FLAGS "-static")

include(FindPkgConfig)
pkg_search_module(SDL2 sdl2)
if (SDL2_FOUND)
  message(STATUS "Using SDL2")
  add_definitions(-DUSE_SDL2)
  include_directories(${SDL2_INCLUDE_DIRS})
  link_directories(${SDL2_LIBRARY_DIRS})
  link_libraries(${SDL2_LIBRARIES})
else ()
  message(FATAL_ERROR "Missing SDL2")
endif ()

file(GLOB SOURCE_FILES src/*.cpp src/*.hpp)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${SDL2_LIBRARIES})

मैं -static लिंकर ध्वज के बिना ठीक निर्माण कर सकता हूं, लेकिन इसके साथ मुझे अपरिभाषित संदर्भों की लंबी सूची मिलती है।

c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `timeSetPeriod':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:58: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:52: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:58: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `SDL_TicksInit':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:106: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `timeSetPeriod':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:52: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:52: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `SDL_GetTicks_REAL':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:159: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `timeSetPeriod':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:58: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `SDL_TicksInit':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:106: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `timeSetPeriod':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:52: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `SDL_GetTicks_REAL':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:159: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `timeSetPeriod':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:58: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `SDL_TicksInit':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:106: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_systimer.o): In function `timeSetPeriod':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/timer/windows/SDL_systimer.c:52: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_SetupAPI':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:596: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:609: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:612: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_GetId':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:530: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:545: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:549: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:550: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_ClearComposition':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:662: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:666: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:670: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:671: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_Disable':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:344: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_ClearComposition':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:668: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:662: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:666: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:670: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:671: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:668: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_Init':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:303: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:304: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_GetId':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:530: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:545: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:549: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_GetReadingString':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:402: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:477: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_GetId':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:550: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_Quit':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:358: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_Enable':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:329: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_ClearComposition':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:662: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:666: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:670: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:671: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_Disable':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:344: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:668: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_HandleMessage':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:834: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_GetCompositionString':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:678: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:683: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_HandleMessage':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:872: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_ClearComposition':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:662: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:666: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:670: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:671: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_HandleMessage':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:867: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_GetCandidateList':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:746: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_GetCompositionString':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:678: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:683: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_InputLangChanged':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:668: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_windowskeyboard.o): In function `IME_GetCandidateList':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/video/windows/SDL_windowskeyboard.c:750: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_winmm.o): In function `WINMM_CloseDevice':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:172: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:172: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:184: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:189: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_winmm.o): In function `WINMM_PlayDevice':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:133: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_winmm.o): In function `DetectWaveOutDevs':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:55: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:55: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_winmm.o): In function `DetectWaveInDevs':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:56: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:56: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_winmm.o): In function `WINMM_OpenDevice':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:235: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:238: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:316: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:366: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:248: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:251: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_winmm.o): In function `PrepWaveFormat':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:218: undefined reference to `_imp_[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:216: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_winmm.o): In function `WINMM_OpenDevice':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:320: undefined reference to `[email protected]'
c:/SDL2-2.0.3/i686-w64-mingw32/lib\libSDL2.a(SDL_winmm.o): In function `SetMMerror':
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:108: undefined reference to `[email protected]'
/Users/slouken/release/SDL/SDL2-2.0.3-source/foo-x86/../src/audio/winmm/SDL_winmm.c:108: undefined reference to `[email protected]'
collect2.exe: error: ld returned 1 exit status
make[2]: *** [racer-sdl.exe] Error 1
make[1]: *** [CMakeFiles/racer-sdl.dir/all] Error 2
make: *** [all] Error 2