2014-02-19 5 views
1

SDL2 정적 라이브러리를 구축 중입니다. 내 프로그램에서 그것을 사용하려면 (정적) SDL2.lib뿐만 아니라 Winmm.lib, imm32.lib, version.lib (일부 Windows DLL 용 스텁이라고 가정) 과도 링크해야합니다. 필자의 주요 목표는 정적 SDL2 버전을 만들어 내 프로그램이 다른 3 개의 .lib과 연결될 필요가 없도록 만드는 것입니다. 정적 라이브러리에 필요한 모든 심볼을 갖고 싶기 때문에 EXE를 SDL2.lib와 링크해야합니다. MS VS2012를 사용하고 있습니다. 정적 SDL2.lib을 만들 때 사서를 사용하여 Librarian/Additional Dependencies에 다른 3 개의 라이브러리를 추가 할 생각이 들었습니다. 그것은 매력처럼 작용했습니다. 내 exe는 SDL2.lib에 대해서만 링크되어야합니다. 다른 라이브러리와 연결된 정적 라이브러리 - LINKER 경고

그러나 lib 디렉토리가 연결되었을 때, 내가 가진 경고 : imm32.lib 및 version.lib 이전에 정의되지 않은 (SDL2.lib에서) 문자를 정의하지 :
warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library imm32.lib(IMM32.dll) SDL2main 
warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library version.lib(VERSION.dll) SDL2main 

지금 내 생각이있다. 따라서 SDL2.lib의 모든 심볼을 확인할 수 있기 때문에 필요하지 않습니다. 그래서 사서로부터 2 개의 라이브러리를 제거하고 SDL2.lib를 다시 컴파일했습니다. 이제 내가 그것에 대한 내 exe를 연결하면, 나는 (그 2 제거. libs)에서 가능성이 미해결 기호가 있어요.

누군가 내게 그 경고의 의미를 설명 할 수 있습니까? 어떻게 그들을 피할 수 있습니까?

+0

확실히 틀린데, 정적 라이브러리에는 SDK 라이브러리가 포함되어서는 안됩니다. 그리고 imm32와 version과 같은 것은 필요하지 않습니다. 그들은 실제로 lib를 사용하는 프로젝트에 의해 링크되어야합니다. 그리고 그들에게 필요한 것이있을 수도 있습니다. 그러나 SDL은 의심스런 모든 종류의 스턴트를 제거합니다. 아마도이를 무시하거나 프로젝트 문서에 혼란스러워 질 위험이 있습니다. –

답변

0

이러한 기호는 SDL2.lib에서 사용되지 않지만 주로 사용됩니다. 그렇기 때문에이 세 파일을 주 파일과 연결하고 바로 가기를 사용하지 않아야합니다.

관련 문제