Qt — Ошибка компиляции: не удалось изменить рабочий каталог

Я пытаюсь собрать oxideqt, API QML для Chromium Embedded Framework (CEF), но я вижу ошибку:

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'

Похоже, что это делает cd на C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0, но я не могу узнать, какой скрипт выполняет cd,

Ниже приведены связанные файлы .pro:

oxidqt.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

3

Решение

Возможная причина и решение:

Это выглядит как для sh, не для cmd.exe:

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

Если это так, это может быть связано с неправильным автоматическим определением оболочки. Причиной этого может быть то, что есть sh.exe в ПУТИ. Итак, выясните, где он находится, и либо удалите папку из PATH, либо переименуйте файл в sh_.exe или что угодно.

Чтобы найти его, нужно найти этот файл (ссылка) в правильный cmd.exe подскажите для среды сборки:

where sh

Обратите внимание, что если у вас установлено много вещей, вы можете иметь несколько из них в вашем PATH, поэтому после избавления от первого, проверьте еще раз … Если все еще не решена, попробуйте удалить bash из PATH тоже (хотя я не видел, чтобы это вызывало проблемы). Также не забудьте перезапустить IDE или командную строку, если вы редактируете системный PATH, чтобы изменения вступили в силу. А потом не забудьте повторить qmake.

3

Другие решения

Кажется, что http://bazaar.launchpad.net/~oxide-developers/oxide/oxide.trunk/view/head:/build/gyp_oxide Python-скрипт, который пытается запустить make Есть ли python.exe в вашей переменной PATH?

Ким Куллинг

1

Я просто просмотрел конфигурацию целых pro-файлов и нашел множество специфичных для Unix путей, таких как / usr / local. Поддерживается ли окно как цель сборки?
Как упоминалось ранее, скрипт сборки не может работать с cd; командование
Может быть, вы можете попробовать запустить его с помощью Cygwin?

Ким Куллинг

0