g ++을 사용하여 SDL로 프로그램을 컴파일하려고했습니다.SDL 및 g ++로 컴파일 할 때 -lSDLmain 등을 찾을 수 없습니다.
이 프로그램은 이런 식으로 두 SDL 테스트 라인, 만 MAIN.CPP 파일입니다
#include "SDL/SDL.h"
using namespace std;
int main(void) {
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Quit();
return 0;
}
하지만 내 문제는 내가 오류가 SDL 라이브러리와 함께 할 수 있다는 것입니다.
우선 MinGW32를 설치하여 C++ 11에 대해 배울 수 있었으므로 GCC의 버전을 묻는 경우 version 4.7.0
이라고합니다.
그런 다음 SDL-devel-1.2.15-mingw32.tar.gz
파일을 SDL 웹 사이트에서 다운로드하고 폴더를 바탕 화면으로 추출했습니다.
는 그 후 나는 내가 C:/MinGW/lib folder
에 /SDL-1.2.15/lib
폴더에서 3 개 파일을 복사 C:/MinGW/include/SDL
다음
에 /SDL-1.2.15/include/SDL
에서 헤더 파일을 모두 복사 그들은했다 :
libSDL.dll.a
libSDL.la
libSDLmain.a
그리고 마지막으로 I SDL.dll
파일을 bin 디렉토리에서 .exe 파일이 컴파일되는 디렉토리로 복사했습니다.
나는 모든 것을 올바르게 설정했다고 생각하지만, 어떻게 컴파일하려고했는지에 따라 두 개의 다른 메시지가 나타납니다.
우선 Sublime Text 2 편집기에서 시스템 빌드 기능을 사용하여 컴파일 해 보았습니다.
c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: cannot find lmingw32 -lSDLmain -lSDL -mwindows
collect2.exe: error: ld returned 1 exit status
[Finished in 0.3s with exit code 1]
그래서 내가 다음에서 직접 컴파일하려고 :이 프로그램을 실행할 때
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}", "-lmingw32 -lSDLmain -lSDL -mwindows"]
내가 오류 메시지가 :
이
내가 실행하는 숭고한 텍스트 2를 말한 명령입니다 명령 프롬프트. 나는 나의 MAIN.CPP 같은 디렉토리로 디렉토리를 변경하고 다음 실행 :g++ main.cpp -o main.exe -lmingw32 -lSDLmain -lSDL -mwindows
을 그리고 다음과 같은 오류 메시지가 있어요 :
이c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../libSDLmain.a(SDL_win32_main.o): In function `console_main':
/Users/slouken/release/SDL/SDL-1.2.15/./src/main/win32/SDL_win32_main.c:315: undefined reference to `_SDL_main'
collect2.exe: error: ld returned 1 exit status
아무도 내가 뭐하는 거지 볼 수를 잘못된?
명령을 실행하는 위치에 따라 두 가지 메시지가 나타나는 이유는 무엇입니까? 어떻게 해결할 수 있습니까?
도움을 주시면 감사하겠습니다.
라이브러리에 대한 명시적인 경로를 지정해 보았습니까? 명령 줄에서 너무 많은 번거 로움이 있다면 Code :: Blocks와 같은 GUI를 사용할 수 있습니다. – Antimony
@Antimony 묻는 것에 대해 유감스럽게 생각합니다. 그러나 이것에 대해서는 아주 새로운 것이지만 라이브러리에 대한 명시적인 경로는 어떻게 제공합니까? 방금 -lC : \ path \를 사용합니까? 그리고 CodeBlocks 사용에 대해 생각하고 있었지만 Sublime Text 2가 훨씬 더 마음에 들었습니다. 그래서 처음에 그것을 사용하려고했습니다. 그러나 내가 어떤 이유로 든 작동하도록 할 수 없다면 지금 당장 CodeBlocks를 사용해야 할 것입니다. –
죄송합니다. Sublime에서 빌드 도구를 실행 해본 경험이 없습니다. 나는 항상 Code :: Blocks를 C++ 개발에 사용한다. – Antimony