规格:Qt Creator 2.5.1,Qt 4.7.4(32位)
从Qt documentation我的理解是,在Qt的.pro文件中包含资源(.qrc),只需要让qmake生成正确的qrc _ * .cpp文件。我的项目似乎并非如此。当运行qmake时,make文件被创建,并且我在seek_rcc_clean下找到了我正在寻找的qrc_文件的引用,而不是在构建链中。
[更新] 根据以下评论的建议,qmake生成的makefile直接用NMAKE进行测试。创建了正确的qrc_filter_ao.cpp文件。但是,当我从Qt Creator构建时,IDE仍然无法正确生成此文件。
的.pro:
include (../../shared.pri)
TARGET = filter_ao
QT += opengl
HEADERS += ./filter_ao.h
SOURCES += ./filter_ao.cpp
RESOURCES += \
filter_ao.qrc
shared.pri
include (./general.pri)
VCGDIR = ../$$VCGDIR
TEMPLATE = lib
CONFIG += plugin
CONFIG += resources
QT += opengl
QT += xml
QT += xmlpatterns
QT += script
win32-msvc2008: LIBS += ../../distrib/common.lib
win32-msvc2008:DEFINES += GLEW_STATIC _USE_MATH_DEFINES
INCLUDEPATH *= ../.. $$VCGDIR ../$$GLEWDIR/include
DEPENDPATH += ../.. $$VCGDIR
win32-msvc2008:DEFINES += _CRT_SECURE_NO_DEPRECATE
CONFIG(release,debug | release){
# Uncomment the following line to disable assert in mingw
#DEFINES += NDEBUG
}
DESTDIR = ../../distrib/plugins
contains(TEMPLATE,lib) {
CONFIG(debug, debug|release) {
unix:TARGET = $$member(TARGET, 0)_debug
else:TARGET = $$member(TARGET, 0)d
}
}
win32-msvc2008: RCC_DIR = $(ConfigurationName)
general.pri
VCGDIR = ../../../vcglib
GLEWDIR = ../external/glew-1.7.0
win32:DEFINES += NOMINMAX
答案 0 :(得分:2)
我认为@Pie_Jesu是正确的。我已经使用OP中的文件设置了一个目录结构,并将.pro文件导入QtCreator。我已经从设置RCC_DIR的行中删除了“win32-msvc2008:”前缀,因为我使用的是VS Express 2010。 结果是我得到一条消息,如“无法打开\ qrc_filter_ao.cpp进行写入:访问被拒绝”,并且没有创建qrc_file。 然后我将该行设置为/ TEMP:
RCC_DIR = /TEMP
结果是我在\ TEMP。
下面找到qrc_文件答案 1 :(得分:1)
您是否尝试使用更简单的.pro文件?例如,以下适用于我(在Linux上,当前没有可用的MSVC环境):
TEMPLATE = lib
CONFIG += plugin
CONFIG += resources
QT += opengl
QT += xml
QT += xmlpatterns
QT += script
TARGET = filter_ao
QT += opengl
RESOURCES += \
filter_ao.qrc
确保构建的输出包含对$ QTDIR / rcc的调用,例如
/usr/bin/rcc -name filter_ao filter_ao.qrc -o qrc_filter_ao.cpp