【问题标题】:JOM files not being generated未生成 JOM 文件
【发布时间】:2020-08-12 09:42:05
【问题描述】:

我正在将一个在 MacOS 上编译的 qt 项目移植到 Windows。我已经设法或多或少地修复了所有编译器错误,但我现在遇到了这个问题:

18 warnings generated.
      /OUT:debug\editor.exe @C:\Users\User\AppData\Local\Temp\editor.exe.10472.84781.jom
The system cannot find the path specified.
jom: C:\Source\build-project-qt-Desktop_Qt_5_12_9_MSVC2017_64bit-Debug\src\Makefile.Debug [debug\editor.exe] Error 1
jom: C:\Source\build-project-qt-Desktop_Qt_5_12_9_MSVC2017_64bit-Debug\src\Makefile [debug] Error 2
jom: C:\Source\build-project-qt-Desktop_Qt_5_12_9_MSVC2017_64bit-Debug\Makefile [sub-src-make_first] Error 2
02:32:53: The process "C:\Users\User\msvc_make.bat" exited with code 2.
Error while building/deploying project project (kit: Desktop Qt 5.12.9 MSVC2017 64bit)
When executing step "Make"

我一直在寻找几个小时,但我不知道为什么没有生成它。如果不需要,我非常希望不要禁用 JOM(不是我没有尝试过,将套件中的 CMake 生成器设置为 NMake Makefiles with Codeblock 而不是 NMake Makefiles JOM with Codeblocks 只会给我同样的错误)。

编辑:这是 Makefile.debug 文件的一部分,它似乎调用了 editor.exe:

####### Build rules

first: all
all: Makefile.Debug  debug\editor.exe

debug\editor.exe: C:\Source\build-project-Desktop_Qt_5_12_9_MSVC2017_64bit-Debug\src\..\lib\cocos2d\debug\cocos2d.lib C:\Qt\Qt5.12.9\5.12.9\msvc2017_64\lib\Qt5OpenGLd.lib C:\Qt\Qt5.12.9\5.12.9\msvc2017_64\lib\Qt5Widgetsd.lib C:\Qt\Qt5.12.9\5.12.9\msvc2017_64\lib\Qt5Guid.lib C:\Qt\Qt5.12.9\5.12.9\msvc2017_64\lib\Qt5Xmld.lib C:\Qt\Qt5.12.9\5.12.9\msvc2017_64\lib\Qt5Cored.lib C:\Qt\Qt5.12.9\5.12.9\msvc2017_64\lib\qtmaind.lib ui_mainwindow.h ui_setprojectpathdialog.h $(OBJECTS) 
    $(LIBAPP) $(LIBFLAGS) /OUT:$(DESTDIR_TARGET) @<<
      [here is a list of paths to a bunch of obj files in a debug folder]
<<

这是我能找到的变量:

DESTDIR        = debug\ #avoid trailing-slash linebreak
TARGET         = editor.exe
DESTDIR_TARGET = debug\editor.exe

OBJECTS 是调试文件夹中的 obj 文件列表。

【问题讨论】:

  • 那个前缀 /OUT: 在我看来是错误的。要么应该提供一些其他缺少的程序,要么该前缀不应该存在。不幸的是,nmake 不是 make 的一个很好的实现(它甚至没有尝试成为标准并且缺乏有用的错误输出)。我认为您必须查看src\Makefile.Debug 文件并尝试找到调用editor.exe 的规则,然后将该规则复制/粘贴到您的问题中。否则,qmakeqt 的人可能会给你一些提示。
  • @MadScientist 我完全同意。我已经更新了我的问题。这些没有提到那里的任何 jom 文件。
  • 看起来 make 变量 LIBAPPLIBFLAGS 为空或未设置。 LIBAPP 至少需要指定一个适合构建目标的程序。
  • 另外,我倾向于同意@MadScientist 的观点,即/OUT 标志看起来很可疑。从它的名字我推断它是为创建的文件指定一个目录或完整路径名,但不清楚变量DESTDIR_TARGET如何与它出现的规则的指定目标相关联。
  • 我对此一无所知。我一直在寻找LIBAPPLIBFLAGS。在项目或 Qt 安装目录中的任何地方都没有提到 LIBAPPLIBFLAGS 仅出现在 QMAKE_LIBFLAGS 的上下文中,并且从未真正设置为任何内容。我在哪里填写?什么?为什么还没设置好?我该如何着手处理这个问题?

标签: qt makefile qmake


【解决方案1】:

看来LIBAPP 确实未设置。为什么会这样,我不知道。它是依赖关系,使用相同的工具包和编译器就可以了。

我采用的解决方案是将LIBAPP 设置为llvm-lib /NOLOGO

我绝对讨厌这一切。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2012-10-13
    相关资源
    最近更新 更多