상세 컨텐츠

본문 제목

[Qt] CMake 빌드 시, 리소스를 불러오지 못하는 경우

Qt

by 전산거북이 2026. 4. 14. 15:25

본문

Qt에서 리소스를 불러온 뒤, 분명 모든 것을 다 잘 설정했는데 리소스로 불러오지 못 하는 경우가 있습니다.

 

다음과 같이 4가지 경우에서 간단한 리소스 프로젝트ㅏ에 대해 실험을 해 보기로 하였습니다.

각 파일에서 다른 점은 다음과 같습니다.

  빌드 시스템 UI 사용 여부
0_QCheckBox CMake 미사용
0_QCheckBox_Qmake QMake 사용
0_QCheckBox_NonUi QMake 미사용
0_QCheckBox_Ui CMake 사용

(순서가 들쭉날쭉한 것은 이름순 정렬을 미처 확인하지 못한 결과입니다ㅜㅜ 여러분들은 꼭 확인해보세요)

빌드 시스템은 CMake와 QMake를 사용해 보았고, UI 사용을 할 것인지, 그렇지 않을 것인지에 대한 차이를 두어 실험해 보았습니다.

 

결론적으로는, UI 디자이너를 사용하든 사용하지 않든, CMake 에서는 리소스를 이용하여 아이콘을 표시하는데 실패하였습니다.

QCheckBox, CMake, Ui미사용
QCheckBox_QMake, QMake, Ui사용

 

QCheckBox_Qmake_nonUi, Qmake, Ui미사용
QCheckBox_Ui, Cmake, Ui사용

 

보다시피 UI 사용과는 관계 없이 Cmake를 사용한 경우에만 리소스를 불러오지 못하였습니다.

 

결론은 간단했습니다.

//Qmake
...
RESOURCES += \
    resources.qrc

Qmake에는 리소스를 추가하는 코드가 존재하는 모습을 볼 수 있습니다.

 

그러나 Cmake에서는 어땠을까요?

//CMakeLists.txt
...
qt_add_executable(0_QCheckBox
    WIN32 MACOSX_BUNDLE
    main.cpp
    widget.cpp
    widget.h
    resources.qrc
)

있는거 같은데, 좀 애매합니다. 중요한 게 빠졌습니다.

//cMakeLists.txt
...

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

...

이 부분이 존재해야 합니다.

저 부분을 넣고 한 번 실행해보면 어떨까요?

 

 

잘 나오는 것을 확인할 수 있습니다.

'Qt' 카테고리의 다른 글

[Qt] 페이지 전환하기  (0) 2026.04.16
[Qt] Ui에서 페이지 여러개 만들어서 사용하기  (0) 2026.04.16
[Qt] int to QString  (1) 2026.04.16

관련글 더보기

댓글 영역