저는 OS X에서 만든 앱을 Windows 10으로 이식하는 작업을하고 있습니다. 저는 Visual Studio 2015 Community Edition을 사용하고 있습니다.
프로젝트를 실행하려면 GL 4.5를 대상으로하기 때문에 GLFW 및 Windows에서 GLEW에 연결해야합니다.
그래서 나는 glfw와 glew libs를 가지고 있습니다. 또한 Cygwin을 사용하므로 이러한 lib에 대해 OS X에서 사용할 폴더 구조를 모방하기 위해 usr / local / (bin | lib | include)에 libs를 설치했습니다.
내가 가지고있는 문제는 OpenGL lib 자체에 있습니다.
어제까지 다음 비주얼 스튜디오 설정으로 프로젝트를 컴파일하고 glfw 창을 초기화 할 수있었습니다.
프로젝트-> 속성-> :
C ++-> 일반 :
추가 포함 디렉터리 :
C:\cygwin64\usr\local\include
링커-> 일반 :
추가 라이브러리 디렉토리 :
C:\cygwin64\usr\local\lib
C:\cygwin64\usr\local\bin
링커-> 입력 :
opengl32.dll
glew32s.lib
glfw3.lib
가장 먼저 주목해야 할 점은 .lib가 아닌 opengl32.dll에 링크하고 있다는 것입니다. Windows SDK를 설치할 때 Program Files / Microsoft SDKs / Windows (x86 또는 기타)에 opengl32.lib가 있다는 온라인 질문 / 게시물을 많이 보았습니다. 이것은 나에게 해당되지 않습니다. 나는 Windows 10 SDK를 다시 설치했으며 어디에도 정적이든 동적이든 OpenGL lib를 설치하지 않습니다.
그래서 나는 내 opengl dll이 Windows / System32에서 온 것이라고 확신합니다. 왜냐하면 그것은 모든 종류의 OpenGL lib가있는 전체 시스템에서 유일한 장소이기 때문입니다.
C:\Windows\System32
링커의 추가 라이브러리 디렉토리 섹션 에도있을 수 있다고 생각 합니다. 나는 일주일 전에 많은 어려움을 겪고 이것을 설정했기 때문에 생각하게 만든다고 말합니다. 그 이후로 잘 발전 할 수있었습니다.
어제 밤에 내가 한 일은 내 작업을 git 브랜치에 커밋하고 다른 브랜치로 전환 한 다음 해당 브랜치에 병합하는 것뿐이었습니다. 병합 후 모든 Visual Studio 링커 / C ++ 설정이 지워졌습니다. 그래서 위에서 보여준 것처럼 그것들을 다시 만들어야했습니다.
이제 내가 포함 C:\Windows\System32
하고 opengl32.dll VS가 튀어 나오면 어떻게됩니까 ?
LNK1107 invalid or corrupt file: cannot read at 0x2E0 OpenVRTest C:\Windows\System32\opengl32.dll
그리고 내가 그것을 포함하지 않으면 분명히 glfw의 내용 중 절반이 해결되지 않습니다.
이 작업을 다시 수행하는 방법에 대한 힌트가 있습니까? 이건 말이 안 돼요 ... 잘 작동했고이 opengl32.dll과 잘 작동 했어야합니다.
또한 부수적으로 사람들이 Windows SDK를 설치하면 gl lib의 정적 버전이 설치된다고 주장하는 이유를 잘 모르겠습니다. 적어도 나에게는 그렇지 않습니다.
링커-> 입력 :
opengl32.dll glew32s.lib glfw3.lib
그건 opengl32.dll
틀렸어요. Windows 개발에서 링커는 항상.lib
파일을 가져 옵니다. 정적 라이브러리의 .lib
경우 실제 라이브러리 바이너리가 포함됩니다. DLL의 경우 해당 .lib
DLL은 사용할 DLL과 제공하는 기호에 대해 링커에 알립니다.
작업을 수행하는 방법에 대한이 특별한 선택의 주된 이유는 Windows 개발에서 실제 DLL없이 DLL에 대한 링크가 가능하기 때문입니다.
또한 시스템 라이브러리는 …32
64 비트 시스템에서도 항상 접미사가 붙습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다