>source

MinGW (32 비트 버전)를 컴파일러로 사용하고 SDL2 라이브러리를 포함하여 Eclipse를 설정하려고합니다. Codeblocks에서 왔을 때 이미 시스템에서 실행했지만 Eclipse로 전환하기로 결정했습니다. 관련 라이브러리를 추출 및 링크 한 후 SDL2 기본 라이브러리의 함수를 오류없이 사용할 수 있습니다. 그러나 추가 라이브러리는 문제를 일으 킵니다.

내 링커 설정은 다음과 같습니다. 링커

다음과 같이 라이브러리를 포함해도 컴파일러 오류가 발생하지 않습니다.

#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_ttf.h>

그러나 라이브러리에서 함수를 호출하면 다음이 수행됩니다. 정의되지 않은 참조 오류

c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe:    C:\eclipse_workspace\sdl_final\Debug/../src/sdl_final.cpp:338: undefined reference to `TTF_Quit'
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: C:\eclipse_workspace\sdl_final\Debug/../src/sdl_final.cpp:339: undefined reference to `IMG_Quit'

모든 MinGW 파일은 C :/MinGW에 있습니다. SDL2 및 추가 라이브러리의 헤더 파일 (SDL_image.h 등)은 C : \ MinGW \ include \ SDL2에 있습니다. 라이브러리 파일 (libSDL2_image.a 등)은 C : \ MinGW \ lib에 있습니다.

SDL의 "bin"디렉토리에있는 각각의 파일과 시스템 디렉토리에 복사 한 추가 라이브러리. (Win10, SysWOW64). 또한 32 비트 SDL 라이브러리를 사용하고 있는지 확인했습니다.

특히 SDL2 표준 라이브러리에서 함수를 호출 할 수 있기 때문에 문제가있을 수있는 단서가 없습니다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까?


  • 답변 # 1

    MinGW, Eclipse 및 위에서 언급 한 모든 SDL2 라이브러리를 새로 설치했습니다.이 단계 중 하나를 수행하여 문제를 해결 했어야했지만 그 위치를 정확히 알 수 없었습니다. 64 비트 라이브러리를 실수로 32 비트 라이브러리로 추출 해야하는 경우가 대부분이라고 생각합니다.

관련 자료

  • 이전 COUNT와 WHERE를 사용하는 PHP MySQL
  • 다음 php - 입력을 업데이트하는 데 왜 두 번이 걸리나요?