【问题标题】:Qt - Compilation Error: Couldn't change working directoryQt - 编译错误:无法更改工作目录
【发布时间】:2013-10-17 15:29:42
【问题描述】:

我正在尝试编译 oxideqt,这是一个用于 Chromium 嵌入式框架 (CEF) 的 QML API,但我遇到了错误:

11:13:58: Running steps for project oxideqt...
11:13:58: Configuration unchanged, skipping qmake step.
11:13:58: Starting: "C:\Qt\Qt5.1.1\Tools\QtCreator\bin\jom.exe" 
    cd qt\lib\ && ( if not exist Makefile C:\Qt\Qt5.1.1\5.1.1\msvc2010\bin\qmake.exe C:\Users\simon\Documents\oxide\qt\lib\lib.pro -spec win32-msvc2010 -o Makefile ) && C:\Qt\Qt5.1.1\Tools\QtCreator\bin\jom.exe -f Makefile
    C:\Qt\Qt5.1.1\Tools\QtCreator\bin\jom.exe -f Makefile.Release
    cd C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0
Couldn't change working directory to C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0.
jom: C:\Users\simon\Documents\build-oxideqt-Desktop_Qt_5_1_1_MSVC2010_32bit-Release\qt\lib\Makefile.Release [C:\Users\simon\Documents\oxide\Makefile.oxide] Error 1
jom: C:\Users\simon\Documents\build-oxideqt-Desktop_Qt_5_1_1_MSVC2010_32bit-Release\qt\lib\Makefile [release] Error 2
jom: C:\Users\simon\Documents\build-oxideqt-Desktop_Qt_5_1_1_MSVC2010_32bit-Release\Makefile [sub-qt-lib-lib-pro-make_first-ordered] Error 2
11:13:58: The process "C:\Qt\Qt5.1.1\Tools\QtCreator\bin\jom.exe" exited with code 2.
Error while building/deploying project oxideqt (kit: Desktop Qt 5.1.1 MSVC2010 32bit)
When executing step 'Make'

看起来它正在对C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0 执行cd,但我无法找出哪个脚本正在执行cd

以下是相关的 .pro 文件:

oxideqt.pro(顶级.pro)

TEMPLATE = subdirs
CONFIG += ordered

lib.file = qt/lib/lib.pro
SUBDIRS += lib

renderer.file = qt/renderer/renderer.pro
SUBDIRS += renderer

sandbox.file = qt/sandbox/sandbox.pro
SUBDIRS += sandbox

qmlplugin.file = qt/qmlplugin/qmlplugin.pro
SUBDIRS += qmlplugin

testutils.file = qt/tests/utils/testutils.pro
SUBDIRS += testutils

qmltests.file = qt/tests/qmltests/qmltests.pro
SUBDIRS += qmltests

QMAKE_CLEAN += -r \
    $${OXIDE_SRC_ROOT}/Makefile.oxide \
    `find $$OXIDE_SRC_ROOT -name \"*.target.oxide.mk\"` \
    $$CHROMIUM_OUT_DIR

lib.pro

CONFIG += gyp disable_check
TARGET = oxide-qt
GYP_TYPE = lib

include($${OXIDE_QMAKE_PATH}/oxide_variables.pri)

GYP_LIBVERSION = $$OXIDE_QT_LIBVERSION

resources.path = $$LIBEXECDIR
resources.files = \
    $${CHROMIUM_OUT_PLAT_DIR}/oxide.pak \
    $${CHROMIUM_OUT_PLAT_DIR}/oxide_100_percent.pak
resources.CONFIG = no_check_exist
INSTALLS += resources

【问题讨论】:

  • "但我无法找出哪个脚本正在执行 cd。" - 那将是 qmake 生成的 Makefile 之一。路径存在吗?
  • C:/Users/simon/Documents/oxide 存在,但是,如果您之后附加所有内容,则它不存在。看起来就像它在做什么。

标签: c++ qt linker qml chromium-embedded


【解决方案1】:

一个可能的原因和解决方案:

这似乎是给sh,而不是给cmd.exe

cd C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0

如果是这样,可能是由于 shell 的自动检测错误。发生这种情况的一个原因可能是 PATH 中有 sh.exe。因此,找出它在哪里,然后从 PATH 中删除该文件夹或将文件重命名为 sh_.exe 或其他。

要找到它,这应该在构建环境的正确cmd.exe 提示符处找到文件(a link)

where sh

请注意,如果您安装了很多东西,您的 PATH 中可能有 几个,所以先删除后,再次检查...如果仍然没有解决,请尝试删除bash 也来自 PATH(尽管我没有看到这会造成麻烦)。如果您编辑系统 PATH,请记住重新启动 IDE 或命令提示符,以使更改生效。然后记得重新运行qmake

【讨论】:

  • 但是我在磁盘上的任何地方都找不到sh。当我执行where sh 时,我得到INFO: Could not find files for the given pattern(s).
  • 那么,问题的根源是别的东西:(。但我很确定症状是我想的那样,当它应该生成 sh 命令时,它会生成 i>cmd.exe 命令,也许这将有助于找到解决方案。您可以尝试“在文件中查找”或 grep 在项目文件夹中查找字符串 gyp_oxide 并查看是否找到有问题的命令来自何处.
  • 另一个可能出现问题的地方(在这种情况下基本上是 Qt 安装中的错误)可能在 qmake 配置文件中。命令qmake -query(带有正确的qmake)应该告诉他们在那个qmake中的位置。您可以在下面为您的编译器工具链查找与 jom 相关的内容。
【解决方案2】:

似乎http://bazaar.launchpad.net/~oxide-developers/oxide/oxide.trunk/view/head:/build/gyp_oxide 是一个 python 脚本,make 试图启动它。 python.exe 在你的 PATH 变量中吗?

金库林

【讨论】:

  • 是的,我的 PATH 变量包含包含 python.exe 的目录。
【解决方案3】:

我刚刚查看了整个配置文件的配置,发现了很多特定于 unix 的路径,例如 /usr/local。是否完全支持窗口作为构建目标? 如前所述,构建脚本不能与 cd 一起使用;命令 。 也许您可以尝试使用 cygwin 运行它?

金库林

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多