0

몇 줄의 코드를 작성하기 전에 예기치 않은 링커 문제가 발생하지 않도록 아주 간단한 코드를 컴파일하려고합니다. "LNK1107 잘못되었거나 손상된 파일 : 0x2E8에서 읽을 수 없습니다"를 내가 빌드 할 때Visual Studio Express 2015에서 LNK1107 opengl32.dll

#include <iostream> 
#include <GLFW/glfw3.h> 

int main() 
{ 
    if (!glfwInit()) 
    { 
     std::cout << "Glfw initialization failed\n"; 
    } 

    return 0; 
} 

그러나 나는 다음과 같은 오류가 발생합니다. 내 프로젝트는 x64 그래서 난 아마 32 비트 아키텍처와 잘못된 dll을 연결하고 메모장에서 해당 PE 헤더를 확인했다고 가정. 그러나 "PE d"는 x64이고 L은 x86임을 나타냅니다. 팁을 다른 질문에서 찾았습니다.

내가 연결 시도 여러 opengl32.dll의 다른 디렉토리 : C:\Windows\SysWOW64\opengl32.dll, C:\Windows\System32\opengl32.dll

없음 성공 C:\Windows\WinSxS\amd64_microsoft-windows-opengl_31bf3856ad364e35_10.0.14393.0_none_3c39618da01a51a8\opengl32.dll. 내 특정 사례에 대한 답변을 찾을 수 없었습니다. 도움을 많이 주시면 감사하겠습니다.

+2

'.lib' 파일에는 링크해야하며'.dll' 파일에는 링크되어서는 안됩니다. –

+0

@ AlgirdasPreidžius 어디에서'opengl32.lib' 또는 그와 동등한 파일을 찾을 수 있습니까? –

+0

잘 모르겠습니다. 나는 결코 OpenGL을 사용하지 않았다. –

답변

0

Windows의 경우 .dll이 아닌 export .lib 라이브러리를 연결해야합니다. OpenGL 용 .lib는 비디오 드라이버 패키지의 일부인 opengl32.dll과 독립적으로 생성 된 API 라이브러리이지만 .dll이 컴파일 될 때 일반적으로 생성되는 라이브러리를 내 보냅니다. GLFW에서 .lib도 필요합니다.

+0

내 운영 체제에서이 lib를 찾을 수있는 곳이 어디에도 표시되지 않습니다. 내가 필요한 것을 어디에서 찾을 수 있는지 알고 싶습니까? –

+0

@Edward Snow SDK에 있습니다. OpenGL32.Lib. 어떤 환경 변수가 설정됩니까? – Swift