2014-07-10 4 views
0

SDL, glew 및 glm을 사용하여 Windows 7의 Visual Studio 2013에서 OpenGL 환경을 설정하려고합니다. 예, 제대로 연결하고 헤더와 dll을 모두 정렬했습니다. SDL2.dll과 glew32.dll이 .exe로 있습니다. 내 링커 입력에는 opengl32.lib가 포함됩니다. 런타임 라이브러리는 "다중 스레드 DLL"로 설정됩니다.OpenGL SDL LINK 오류 MSVCRT.lib

/*main.cpp*/ 
#include <SDL.h> 
#include <glew.h> 
#include <iostream> 

int main(int argc, char* argv[]) 
{ 
    return 0; 
} 

오류가

오류 1 오류 LNK2019입니다 : 확인되지 않은 외부 기호는 기능 ___tmainCRTStartup의 C에서 참조 _main : \ 사용자 \ 사용자 \ 문서가 프로젝트 \ 비주얼 스튜디오 2013 \ \ OpenGLProject \ OpenGLProject 다음 msvcrt.lib (\ crtexe.obj) OpenGLProject

내가 SDL_main.h에서 #define main SDL_main을 주석 처리하면 컴파일 할 수 있다는 것을 알게되었으므로 문제와 관련 될 수 있습니다. 나는 마치 내가 틀린 나무를 여기에서 짖고있는 것처럼 느낀다.

+0

프로젝트 당신은 같은 시간에 SDL2.LIB & & SDL2main.lib를 추가해야했다으로 – keltar

+0

예, 이미 보조 시스템을 Windows로 설정하려고했습니다. 그 동안 실제로'SDL_MAIN_HANDLED'를 정의하고 자체 소스를 살펴보고 제공 한 메인을 복사하여 붙여 넣는 방식으로 자체 WinMain을 제공하지 않고 실제로 실행 해 보았습니다. (int WINAPI WinMain (HINSTANCE hInst) , HINSTANCE hPrev, LPSTR szCmdLine, int sw)')를 내 main.cpp에 직접 넣습니다. 이 컴파일,하지만 내가'SDL_SetMainReady();와 같은 것을 호출하는 순간 링커 오류가 있습니다. – facetiousfactorial

답변

1

올바르게 기억한다면 (Windows에서 마지막으로 SDL을 사용한 지 오래되었으므로) SDLmain (또는 이와 비슷한) 라이브러리를 추가해야합니다. 이 라이브러리는 main 함수를 정의합니다.이 함수는 사전 초기화를 수행 한 다음 SDL_main을 호출하여 "주"기능을 수행합니다. 이층가 이 문제를 해결 프로젝트에 SDL2main.lib를 추가

+0

이미 추가되었습니다. 사실 SDL2main.lib. – facetiousfactorial

0

나는, 같은 문제를 가지고 설정은 그래픽 응용 프로그램으로 설정하고 콘솔은 설정하지 않습니까? 함수 이름 (`_main`)으로 판단하면 그렇지 않습니다. 그래픽 엔트리 포인트는`WinMain`이며`SDLmain`에 정의되어 있습니다. 그래서 당신이 직접 정의 할 필요는 없습니다.