바이러스가 출하 상태로 재설정 된 후 컴퓨터에서 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;
}
ifdef'ed extern C는 C++에서 호출 할 수있는 C 함수를 만드는 데 매우 표준적인 방법입니다. 이것은 완전히 정상입니다. 어떤 컴파일러를 사용하고 있습니까? 정확한 오류 메시지 란 무엇이며 테스트 프로그램의 소스 코드는 무엇입니까? – keltar
MinGW를 사용하고 있습니다. – TheBlackSword
네가 게시 한 코드가 문제인지 잘 모르겠다. 어쩌면 그것은 그 이전 일 것입니다. 어쨌든,이 환경에서 어떤 오류가 아니라는 것을 확인해야합니다, 당신은'extern "C"'로 선언되어있는 간단한 함수를 포함하는 새로운 C++ 프로젝트를 만들 수 있습니다. – PeterT