리소스가있는 Qt5 프로그램을 CMake로 컴파일하는 방법

4157 단어 C++CMakeQt
Qt를 사용하면 GUI를 좋은 느낌으로 만들 수 있습니다만, 평상시 CMake를 사용하고 있는 자신에게는, qmake를 사용하지 않으면 안 되는 것이 귀찮았습니다. 최근 CMake를 사용하여 Qt를 포함한 프로그램을 컴파일 할 수 있다는 것을 알았고 Qt를 사용한 프로그램을 만들 수 있었던 것을 계기로 학생용으로 만든 프로그램을 CMake로 컴파일 할 수 있도록 재기록 네. 무사히 기동은 했습니다만, 아이콘류를 표시할 수 없었습니다. Qt에서는 아이콘이 리소스로 *.qrc 파일에 함께 작성되어 있으므로이를 CMake가 건드리도록 설정해야합니다. 이하, 조사하여 실험한 결과를 정리합니다.

참고로 한 페이지


  • h tp // w w. c 케케. rg/피페르마이 l/c마케/2013-마rch/054120. HTML
  • htp // c c. qt. 이오/qt-5/c 마케-마누아 l. HTML
  • htp://c 케케. 3232098. 음 2. 뭐 bぇ. 이 m / 호 w - 어 m 베 d - Qt - 어서 r s - 우신 g - C 마케 - td7584926. HTML
  • h tp // w w. 미안해. 아 c. jp / ~ chi / c 케 / c 케 qt. HTML
  • h tp // w w. 이걸로. m/2012/06/11/qt-c 케케부이 ld/

  • 프로그램


  • htps : // 기주 b. 코 m/t 미치/메 shゃぃ에 w

  • 예전에 만든 간이 다각형 뷰어입니다. Binary STL 파일 만 읽을 수 있습니다. 깨달으면 qmake 파일이 사라졌으므로 CMake로 컴파일 할 수 있습니다.

    환경


  • Qt (5.4.1)
  • Eigen (3.2.4)
  • OpenGL (포함 된 것)
  • CMake (3.2.2)
  • Macbook (OS: Yosemite)

  • 코드



    편집은 CMakeLists.txt입니다.

    src/CMakeLists.txt
    set(CMAKE_PREFIX_PATH /usr/local/opt/qt5/lib/cmake )
    set(CMAKE_INCLUDE_CURRENT_DIR ON)
    set(CMAKE_AUTOMOC ON)
    find_package(Qt5Widgets REQUIRED)
    find_package(OpenGL)
    
    QT5_ADD_RESOURCES(RESOURCES meshview.qrc)
    include_directories (/usr/local/include/eigen3)
    
    add_executable(meshview Camera.cpp
    Camera.hpp
    ChangeColorWidget.cpp
    ChangeColorWidget.hpp
    Color3f.hpp
    ExporterCamera.cpp
    ExporterCamera.hpp
    ExporterMesh.cpp
    ExporterMesh.hpp
    GLWidget.cpp
    GLWidget.hpp
    ImporterCamera.cpp
    ImporterCamera.hpp
    ImporterMesh.cpp
    ImporterMesh.hpp
    Light.cpp
    Light.hpp
    MainWindow.cpp
    MainWindow.hpp
    Mesh.cpp
    Mesh.hpp
    Model.cpp
    Model.hpp
    MouseEvent.cpp
    MouseEvent.hpp
    MouseListener.cpp
    MouseListener.hpp
    Preference.cpp
    Preference.hpp
    View.cpp
    View.hpp
    VirtualTrackball.cpp
    VirtualTrackball.hpp
    main.cpp
    ${RESOURCES}
    )
    
    target_link_libraries(meshview ${OPENGL_LIBRARY} )
    QT5_USE_MODULES(meshview Widgets OpenGL)
    

    처음 몇 줄과 마지막 QT_USE_MODULES는 Qt를 CMake로 컴파일 할 때 필요한 설정입니다.

    포인트는 QT_ADD_RESOURCES와 같습니다. 여기서 리소스 파일 (.qrc)을 제공합니다. 또한 add_executable에도 리소스 파일을 추가합니다. 이제 CMake로 컴파일 할 수 있습니다.

    결과



    툴바 아이콘이 표시되는지 확인할 수 있습니다. 그러나 프로그램 아이콘은 표시되지 않습니다. 이것을 어떻게 하는지는 확실히 보기 어려울 것 같습니다.

    Mac을 사용하여 확인했으므로, Windows 등에서 사용하고 싶은 경우는, include나 library의 링크를 나름대로 설정할 필요가 있습니다.

    좋은 웹페이지 즐겨찾기