我有一个要移到Cmake的Visual Studio Qt解决方案。除了我在* .qrc文件中的所有图标(.png)都没有显示以外,所有内容都可以正常编译和正常工作。我的CMakeLists.txt
是Qt项目的标准设置:
...
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(SOURCE_FILES ...)
set(HEADER_FILES ...)
set(UI_FILES ...)
set(RESOURCE_FILES resources/res.qrc)
add_executable(project WIN32 ${SOURCE_FILES} ${HEADER_FILES} ${UI_FILES} ${RESOURCE_FILES})
find_package(Qt5 REQUIRED COMPONENTS ...)
target_link_libraries(project PRIVATE Qt5::Core etc...)
我认为所有图标实际上都嵌入了.exe,因为:1.如果我从qrc
文件中删除了所有路径并重新编译,则.exe大小将减少图标大小2.我检查了qrc_*.cpp
生成的AUTORCC
,并且所有图像都在那里。
但是当我使用此代码片段迭代所有资源时,>
QDirIterator it(":", QDirIterator::Subdirectories); while (it.hasNext()) { qDebug() << it.next(); }
图标不在那里。
我尝试用qt5_add_resources()
代替AUTORCC
的替代方法,结果是相同的。我还具有与.exe相同路径的所有iconengines
,imageformats
,platforms
,styles
文件夹。
将项目的整个Cmake
部分添加到github。
我有一个要移到Cmake的Visual Studio Qt解决方案。除了我在* .qrc文件中的所有图标(.png)都没有显示以外,所有内容都可以正常编译和正常工作。我的CMakeLists.txt ...
考虑到我们在您的评论中进行的讨论,CMake
可以按预期工作,并且资源已加载到您的应用程序中。