1

仕様: Qt Creator 2.5.1、Qt 4.7.4(32bit)

Qt のドキュメントから、 Qtの .pro ファイルにリソース (.qrc) を含めることは、qmake が正しい qrc_*.cpp ファイルを生成するために必要なすべてであることを理解しています。それは私のプロジェクトには当てはまらないようです。qmake を実行すると、make ファイルが作成され、ビルド チェーンではなく、compiler_rcc_clean の下で探している qrc_ ファイルへの参照があります。

[更新] 以下のコメントからの提案で、qmake によって生成されたメイクファイルは NMAKE で直接テストされました。正しい qrc_filter_ao.cpp ファイルが作成されました。ただし、Qt Creator からビルドすると、IDE はこのファイルを正しく生成できません。

。プロ:

include (../../shared.pri)

TARGET = filter_ao
QT += opengl

HEADERS += ./filter_ao.h
SOURCES += ./filter_ao.cpp

RESOURCES += \
    filter_ao.qrc

共有料金

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)

一般.pri

 VCGDIR = ../../../vcglib
 GLEWDIR = ../external/glew-1.7.0
 win32:DEFINES += NOMINMAX
4

2 に答える 2

2

@Pie_Jesu は正しいと思います。OP のファイルでディレクトリ構造を設定し、.pro ファイルを QtCreator にインポートしました。VS Express 2010 を使用しているため、RCC_DIR を設定する行から「win32-msvc2008:」プレフィックスを削除しました。その結果、「書き込み用に \qrc_filter_ao.cpp を開けません: アクセスが拒否されました」というメッセージが表示され、qrc_file はありません。作成中です。次に、行を /TEMP に設定します。

RCC_DIR = /TEMP

その結果、\TEMP の下に qrc_ ファイルが見つかりました。

于 2012-09-14T20:30:59.817 に答える
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
于 2012-09-12T06:00:35.383 に答える