簡體   English   中英

CMake 鏈接 Qt5::Svg 但 QImageReader 看不到

[英]CMake link Qt5::Svg but not see by QImageReader

我最近更換了我的電腦(Windows 10),所以我重新安裝了 CLion 和 Qt(使用 CMake 編譯)。 但是我的一個項目不再起作用了。

我已經將 Qt5::Svg 添加到 CMake 中,它可以編譯但應用程序中沒有出現 SVG。 如果我嘗試使用 QImageReader::supportedImageFormats(),則不會列出“SVG”。

我在構建目錄中有 Qt5Svgd.dll。

這是我的 CMake 配置:

cmake_minimum_required(VERSION 3.16)
project(NBTModifier)

set(CMAKE_CXX_STANDARD 20)

find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Svg REQUIRED)

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

include_directories(${CMAKE_BINARY_DIR})
add_executable(
    NBTModifier

    main.cpp
    MainWindow/MainWindow.ui MainWindow/MainWindow.h MainWindow/MainWindow.cpp

    icons/breeze.qrc icons/breeze-dark.qrc
)
target_link_libraries(NBTModifier Qt5::Widgets Qt5::Svg)

我錯過了什么 ?

編輯:根據alexandre 的建議,我運行 DependencyWalker:我的“NBTModifier.exe”似乎不依賴於 Qt5Svgd.dll。 它解釋了為什么 QImageReader 不顯示它。

那么為什么 CMake 沒有將 Qt5Svg 鏈接到我的應用程序?

要在您的應用程序中顯示 SVG 圖像(即圖標),您需要相應的 imageformat 插件,該插件正在運行時加載(這就是 DependenyWalker 未顯示的原因)。 查看您的QTDIR/plugins/imageformats目錄,並查找qsvg.dlllibqsvg.dll ,如果需要,將其復制到您的運行時目錄中。 有關相應文檔,請參閱https://doc.qt.io/archives/qt-5.11/windows-deployment.html#qt-plugins

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM