안녕하세요. 내 IDE Visual Studio 2012에 문제가 있습니다. SDL을 배우기 시작 했으므로 새로운 기능이므로 SDL을 사용할 때 좋은 구조를 적용하려고합니다. 클래스로 SDL을 사용할 때 문제가 발생합니다. 내가 main에 모든 것을 입력하면 잘 작동합니다. 난 당신이 여기에 도움이 잘못하고있는 무슨 모르는 오류 클래스가있는 SDL
1>MSVCRT.lib(MSVCR110.dll) : error LNK2005: _exit already defined in LIBCMT.lib (crt0dat.obj)
1>MSVCRT.lib(MSVCR110.dll) : error LNK2005: ___iob_func already defined in LIBCMT.lib(_file.obj)
1>MSVCRT.lib(MSVCR110.dll) : error LNK2005: _fclose already defined in LIBCMT.lib(fclose.obj)
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>C:\Users\User\documents\visual studio 2012\Projects\Nebula\Debug\Nebula.exe : fatal error LNK1169: one or more multiply defined symbols found
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
#include <SDL.h>
#include "System.h"
int main(int argc, char* argv[])
{
System RedObject;
RedObject.SetUp();
SDL_Quit();
return 0;
}
두 번째 파일
홈페이지에 문제가있는 경우 여기에 내 코드가
입니다.#include "System.h"
System::System()
{
}
System::~System()
{
}
void System::SetUp()
{
SDL_Init(SDL_INIT_EVERYTHING); // The SDL Set up bit.
SDL_Surface * screen;
SDL_WM_SetCaption("Window Name", NULL);
fullscreen = false;
if(fullscreen == true)
{
screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE | SDL_FULLSCREEN);
}
else
{
screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
}
bool running = true;
while(running)
{
SDL_Event Event;
while(SDL_PollEvent(&Event))
{
switch(Event.type)
case SDL_QUIT:
running = false;
break;
}
SDL_Flip(screen);
}
}
두 번째 파일 헤더 : 그게 문제의 경우
또한 내가 다중 스레드 DLL에서 실행하는 IDE 코드 생성기를 설정 한#ifndef SYSTEM_H
#define SYSTEM_H
#include <SDL.h>
class System
{
private:
int SHeight, SLenght;
bool fullscreen;
public:
System();
~System();
void SetUp();
};
#endif
(/ MD)는 모르겠어요. 죄송합니다.이 질문에 이미 대답 해 주시면 답변을 찾을 수 있습니다. 미리 감사드립니다.
보인다. SDL에/MD 버전이 있습니까? 디버그 CRT (/ MDd)를 사용하고 있습니까? C++ ABI 문제는 다음과 같이 기뻐합니다 :-) – Cameron
@Cameron : "MS DLL 연결의 즐거움"이라고 말해야한다고 생각합니다. 영향을받는 라이브러리는 C++ ABI와는 거의 관련이 없습니다. 대부분 C – rodrigo
입니다. SDL을 설정하여 버전이 무엇인지 어떻게 알 수 있습니까? 고마워요. 전에는 이런 실수가 있었지만, 이번에는 정말로 푹푹 듭니다. –