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

标签 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/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 SDKs\Windows\v6.0A\bin\RC.exe/r projectname.rc”并将生成的 .res 文件复制到 Makefile.Debug 中指定的文件夹在 LIBS 和 RES_FILE 以及第一个构建规则中,它工作正常。

所以问题是,为什么不再创建该文件(它适用于旧项目,所有源文件都在项目目录和默认的“release”和“debug”目录中)。

将调试选项添加到 Qt Creator 的项目>qmake (-Wall) 和 jom (VERBOSE=2) 的build设置没有产生更多关于问题所在的信息。

Makefile.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 进行编译。

最佳答案

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

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

关于c++ - 在 MSVC2010 Express 和 Qt 4.8 (Qt Creator 2.4.1) 中调试资源文件编译 (rc.exe),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15666375/

相关文章:

visual-studio-2010 - 将解决方案转换为 pdf 或 doc 文件

visual-studio-2010 - VS 2010 Beta 2 - 无法更新服务引用

c++ - 我可以为不同的类型集定义模板吗?

c++ - 如何将抽象信号连接到接口(interface)构造函数中的插槽?

c++ - 此代码在我的计算机上编译并运行但不在服务器上

visual-studio-2010 - 编译时 Visual Studio 中的 CSS 样式错误

css - 在 Vaadin 应用程序中应用 Css 样式

java - 从资源包中读取文件

delphi - 部署 openSSL dll 的建议

c++ - 模块化和灵活的编程