2014-10-18 2 views
1

바이러스가 출하 상태로 재설정 된 후 컴퓨터에서 SDL을 설정하려고했습니다. 내 IDE 인 CodeBlocks를 사용하여 SDL을 실행하는 것은 쉽지만 확장 라이브러리 설정은 그다지 어려움이 없습니다. CodeBlocks는 라이브러리의 존재를 인식하지만 SDL_ttf 헤더와 SDL_image 헤더 내에서 여러 오류가 발생합니다. 나에게 문제를주고있다 코드의 부분은 이것이다 :SDL_TTF 헤더로 인해 문제가 발생했습니다.

/* Set up for C function definitions, even when using C++ */ 
#ifdef __cplusplus 
extern "C" { 
#endif 

첫 번째 줄은 오류 발생 "오류 : 예상 비정규-ID 문자열 상수 전에"를, 세 번째 라인은 위의 오류와 오류를 생성 "error : expected '}'end of line". 내 생각이었다이 SDL은 C로 작성되고, 어쩌면 내 CodeBlocks가 C를 인식하도록 구성되지 않은 뭔가에있을 수도

편집 :

SDL_Surface* imageBlitingFunctions::loadText(Uint8 red, Uint8 blue, Uint8 green, std::string fontname, int fontSize, std::string text) 
{ 

    SDL_Color textColor = {red, blue, green}; 

    TTF_Font *font1 = TTF_OpenFont(fontname.c_str(), fontSize); 

    SDL_Surface *message1 = TTF_RenderText_Solid(font1, text.c_str(), textColor); 

    return message1; 
} 
+0

ifdef'ed extern C는 C++에서 호출 할 수있는 C 함수를 만드는 데 매우 표준적인 방법입니다. 이것은 완전히 정상입니다. 어떤 컴파일러를 사용하고 있습니까? 정확한 오류 메시지 란 무엇이며 테스트 프로그램의 소스 코드는 무엇입니까? – keltar

+0

MinGW를 사용하고 있습니다. – TheBlackSword

+0

네가 게시 한 코드가 문제인지 잘 모르겠다. 어쩌면 그것은 그 이전 일 것입니다. 어쨌든,이 환경에서 어떤 오류가 아니라는 것을 확인해야합니다, 당신은'extern "C"'로 선언되어있는 간단한 함수를 포함하는 새로운 C++ 프로젝트를 만들 수 있습니다. – PeterT

답변

0

: 테스트 소스 코드이있다 문제를 파악했습니다. 분명히 프로젝트 파일이 어떻게 든 손상되었으므로 스크립트를 다른 프로젝트로 전송했는데 모든 것이 잘 작동합니다.

관련 문제