C++ 调试MSVC2010 Express和Qt 4.8(Qt Creator 2.4.1)中的资源文件编译(rc.exe)

C++ 调试MSVC2010 Express和Qt 4.8(Qt Creator 2.4.1)中的资源文件编译(rc.exe),c++,visual-studio-2010,resources,qt4,C++,Visual Studio 2010,Resources,Qt4,在将源文件重新组织为子目录并像 CONFIG( debug, debug|release ) { DESTDIR = $$PWD/build/debug } else { DESTDIR = $$PWD/build/release } OBJECTS_DIR = $$DESTDIR/.obj MOC_DIR = $$DESTDIR/.moc RCC_DIR = $$DESTDIR/.qrc UI_DIR = $$DESTDIR/.ui 似乎包含了一个资源文件 RC_FILE += res/pr

在将源文件重新组织为子目录并像

CONFIG( debug, debug|release ) {
DESTDIR = $$PWD/build/debug
} else {
DESTDIR = $$PWD/build/release
}
OBJECTS_DIR = $$DESTDIR/.obj
MOC_DIR = $$DESTDIR/.moc
RCC_DIR = $$DESTDIR/.qrc
UI_DIR = $$DESTDIR/.ui
似乎包含了一个资源文件

RC_FILE += res/projectname.rc
不会编译成相应的.res文件,因为jom.exe会快速返回

C:\QtSDK\QtCreator\bin\jom.exe -f Makefile.Debug
Error: dependent '"c:\path\to\projectname\build\debug\.obj\projectname.res"' does not exist.
该文件确实不存在

如果我手动运行“C:\Program Files\Microsoft SDK\Windows\v6.0A\bin\RC.exe/r projectname.RC”,并将生成的.res文件复制到Makefile.Debug中指定的文件夹中。在LIBS和res_文件中以及在第一个生成规则中,它可以正常工作

所以问题是,为什么不再创建该文件(它与项目目录中的所有源文件以及默认的“release”和“debug”dirs一起使用的旧项目)

为qmake(-Wall)和jom(VERBOSE=2)添加调试选项到Qt-Creator的Project>Build设置中并没有产生更多关于出错原因的信息

Debug有一个.res文件的目标,其中源文件没有绝对路径,但即使我完成了路径,它也不起作用

如何从jom获得更多调试输出,以查看是否调用了rc.exe

以下是失败时的输出:

18:39:45: The process "c:\qtsdk\desktop\qt\4.8.1\msvc2010\bin\qmake.exe" exited normally.
18:39:45: Starting: "C:\QtSDK\QtCreator\bin\jom.exe" VERBOSE=2
C:\QtSDK\QtCreator\bin\jom.exe -f Makefile.Debug
Error: dependent '"c:\path\to\projectname\build\debug\.obj\projectname.res"' does not exist.
jom 1.0.8 - empower your cores

jom: c:\path\to\projectname\Makefile [debug] Error 2
18:39:46: The process "C:\QtSDK\QtCreator\bin\jom.exe" exited with code 2.
Error while building project projectname (target: Desktop)
When executing build step 'Make'

我还将SDK的路径添加到系统变量中。我用VS C++ 2010 Express编译。

< > >强>可能的原因:< /强>重新定义生成目录,显然导致工具使用包含空格的绝对路径,导致程序调用失败(但哪一个RC?exe’)


解决方案:没有关于获得工具链(jom和qmake)正确调试输出的更多信息,但确保路径中没有空格解决了问题:可执行文件再次嵌入了其资源信息。

可能原因:重新定义生成目录显然导致工具使用包含空格的绝对路径,导致程序调用失败(但这是rc.exe的`)

解决方案:没有关于获取工具链(jom和qmake)正确调试输出的进一步信息,但确保路径中没有空格解决了问题:可执行文件再次嵌入了其资源信息。

qmake doc:qmake doc: