저는 OpenGL 기반 게임을 쓰고 있습니다. 여기에는 glew, glfw3이라는 두 라이브러리 만 포함됩니다. 그것을 실행하기 위해서는 분명히 OpenGL이 설치되어 있어야한다. 우회하고 싶은 가정이다. 게임 디렉토리 안에 모든 적합한 바이너리를 모아서이 라이브러리에 로컬로 연결하려고 시도했지만 컴파일러는 모든 기능에 대해 정의되지 않은 참조를 주장합니다. 내가 잘못한 일을하고있는 것입니까 아니면 불가능한 것입니까? 나는 Windows를 사용하고 있지만 같은 이유로 Linux에서는 실패합니다.설치하지 않고 OpenGL을 실행 하시겠습니까?
답변
OpenGL은 설치하는 라이브러리가 아니며 드라이버의 일부로 구현 된 API입니다. 해결되지 않는 기호에 대해 불평하는 컴파일러는 최종 사용자의 컴퓨터 상황과 완전히 관련이 없습니다. 그리고 당신의 경우에는 컴파일러/링커에게 어떤 라이브러리와 API 인터페이스가 프로그램 바이너리로 링크 할지를 말하지 않은 것 같습니다. 귀하의 컴파일러는 따라서 내부 참조 중 일부는 redolve하지 않는 불평하고 있습니다.
OpenGL은 프로그램과 함께 제공되는 것이 아니며 그래픽 드라이버의 일부이며 프로그램은 사용자 컴퓨터에 설치된 OpenGL 버전을 사용해야합니다. 이를 위해 컴파일러 - 링커 옵션 -lGL
을 전달하여 libGL.so
에 동적으로 링크합니다.
GLEW는 시스템 OpenGL ABI에서 찾을 수없는 모든 OpenGL 함수를 동적으로 사후로드하므로 도우 공용 테이블 libGL.so
을 통해 내 보내지 않습니다. 오히려 그들은 glXGetProcAddress
을 사용하여 동적으로로드됩니다. 다소 지루한 작업입니다. GLEW는 OpenGL-3 이상에서 코어 프로파일과 관련하여 심각한 문제가 있음을 알려드립니다.
GLFW는 OpenGL 컨텍스트가있는 창을 설정하기위한 단순한 프레임 워크 라이브러리입니다.
GLEW 및 GLFW는 을 정적으로에 연결하는 것이 안전하며 그렇게하는 것이 좋습니다. 플래그를 사용하는 대신 연결될 소스 파일/편집 단위 목록에 libGLEW.a
및 libGLFW.a
을 추가하십시오.
철저한 정보를 가져 주셔서 감사합니다. –
- 1. JRE를 설치하지 않고 Java 실행 파일을 실행 하시겠습니까?
- 2. 클라이언트를 설치하지 않고 Oracle Listener가 실행 중인지 확인 하시겠습니까?
- 3. Java 8 JRE를 설치하지 않고 배포 하시겠습니까?
- 4. 설치하지 않고 webapi를 실행하십시오.
- 5. 빌드/설치하지 않고 rubygems에 의해 자동으로로드되도록 개발중인 보석을 추가 하시겠습니까?
- 6. Outlook을 설치하지 않고 공유 Outlook 일정에 액세스 하시겠습니까?
- 7. 설치하지 않고 ODP.NET을 배포
- 8. 설치하지 않고 온라인 반사판
- 9. 설치하지 않고 소프트웨어를 실행하십시오.
- 10. libcurl을 설치하지 않고 사용하기
- 11. VLCJ를 설치하지 않고 VLCJ
- 12. 설치하지 않고 AjaxMin 사용하기
- 13. 설치하지 않고 SDL.NET 런타임?
- 14. 설치하지 않고 BeautifulSoup 사용하기
- 15. 설치하지 않고 NLTK 사용
- 16. PFX를 설치하지 않고 WTD_LIFETIME_SIGNING_FLAG 받기
- 17. 비커를 설치하지 않고 사용하는 방법?
- 18. Visual Studio를 설치하지 않고 vstest.console.exe를 사용하여 C++ unittest 실행
- 19. 젠드 프레임 워크를 서버 루트에 설치하지 않고 사용 하시겠습니까?
- 20. NeoBundle : 번들 디렉토리의 플러그인을 설치하지 않고 사용 하시겠습니까?
- 21. Gnome을 설치하지 않고 Gnome 기본 응용 프로그램을 변경 하시겠습니까?
- 22. TOR 브라우저/번들을 설치하지 않고 TOR 네트워크에서 GET 요청을 하시겠습니까?
- 23. Visual Studio를 설치하지 않고 jenkins 빌드 서버에서 Fake 유닛 테스트를 실행 하시겠습니까?
- 24. 실제로 MSI를 설치하지 않고 네트워크에 배포하는 방법
- 25. MKMapView 위에 OpenGL을 사용 하시겠습니까?
- 26. 설치하지 않고 pear를 사용하는 방법
- 27. 오라클 데이터 공급자를 설치하지 않고
- 28. 서버를 설치하지 않고 MySQL을 사용하십시오.
- 29. 설치하지 않고 AccessDataBaseEngine을 추가하는 방법
- 30. 설치하지 않고 IE7을 테스트하십시오 - 어떻게?
당신이 무엇을 요구하고 있는지 분명하지 않습니다. 물론 glew와 glfw를 정적으로 연결할 수 있습니다. 그러나 사용자가 하드웨어와 일치하는 다른 구현을 사용해야하므로 실제 OpenGL 라이브러리에서는이 작업을 수행 할 수 없습니다. – derhass
다른 구현이 모두 바이너리에 포함되어 있지 않습니까? 내 질문은 무엇을 잘못하고있는 것입니까? 내가 연결해야하는 정확한 라이브러리는 무엇입니까? –
실제로 OpenGL이 무엇인지 혼란스러워합니다. glew 및 GLFW는 일부 도우미 라이브러리이며 OpenGL의 일부가 아닙니다. – derhass