MapleStory Finger Point

Qt/빌드

Qt configure 중 OpenGL 옵션

吳鍾振 2026. 1. 28. 08:53
  1. QT 빌드 이유
    • PDB 파일 생성 - 디버깅 작업에 필요
      프로그램 버그 발생 시, 명확히 문제 파악을 위해 Symbol 정보가 필요함.
    • 기본 배포 Qt에는 Release로 설정되어 있어, -force-debug-info 인자를 추가하여 빌드 시, 디버그 정보를 포함한 Release 빌드를 생성할 수 있음.
  2. OpenGL 필요성
    • Qt 빌드 시 -opengl 인자를 주지 않았다면, 기본적으로 dynamic이 적용됨.
      1. Native OpenGL 사용(GPU: System OpenGL): opengl32.dll 그래픽 카드 드라이버 사용하여 GPU 하드웨어 가속
        - 그래픽 카드 및 드라이버가 없거나 충돌 발생 시 실패하며, 아래 단계로 진행
      2. ANGLE (DirectX 사용: DirectX SDK): OpenGL 명령을 DirectX 명령으로 변환, libEGL.lib, libGLESv2.dll 사용
        - DirectX 필수 구성 요소가 없을 경우,
        - VM 가상 환경에서 3D 가속 옵션을 껐을 때 실패하며, 아래 단계로 진행
      3. 소프트웨어 렌더링(CPU: Software OpenGL) 사용: opengl32sw.dll 사용
        - 1단계, 2단계 실패할 경우 마지막 방안으로 CPU를 통해 렌더링을 진행하며, 실패하면 화면이 출력되지 않음.
      ANGLE:Almost Native Graphics Layer Engine (es2) 동작 방식:
      • DirectX 사용을 통한 GPU 하드웨어 가속
      desktop 동작 방식:
      • System OpenGL (Native OpenGL 사용 고정)
    • dynamic 동작 방식:

기본적으로 opengl32sw.dll 파일은 빌드 후에도 포함되지 않는데, 이를 직접 빌드하기에는 복잡한 과정때문에, 주로 기본 배포 Qt의 bin 폴더에서 복사하여 진행함.

기본 배포 Qt는 dynamic 방식으로,

  • libEGL.dll
  • libGLESv2.dll
  • opengl32sw.dll

파일들이 모두 bin 폴더에 존재하기 때문에 dynamic 모드가 맞음.

직접 빌드한 Qt opengl 인자는 angle 이라서 DirectX 구성 환경이 아닌 경우 UI가 출력되지 않거나 검은 화면이 출력될 수 있음,,,

따라서 일단 Qt configure 옵션 중 -opengl dynamic로 다시 빌드를 진행.

프로젝트 빌드 시 opengl32sw.dll 파일이 생성되지 않아서, 빌드 Qt 경로 중 bin 폴더에 현재 빌드 Qt와 동일한 버전의 배포 Qt 경로에 있는 opengl32sw.dll 파일을 복사하여 붙여넣기한다.

반응형