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