簡體   English   中英

Qt - 編譯錯誤:無法更改工作目錄

[英]Qt - Compilation Error: Couldn't change working directory

我正在嘗試編譯thermqt ,一個用於Chromium Embedded Framework(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 C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0 C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0 ,但我找不到哪個腳本在做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

可能的原因和解決方案:

這看起來像是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提示符下找到文件( 鏈接 ):

where sh

注意,如果你安裝了很多東西,你可能在你的PATH中有幾個 ,所以在先擺脫之后,再次檢查......如果仍然沒有解決,嘗試從PATH中刪除bash (盡管我還沒有看到造成麻煩)。 如果編輯系統路徑,請記住重新啟動IDE或命令提示符,以使更改生效。 然后記得重新運行qmake

似乎http://bazaar.launchpad.net/~oxide-developers/oxide/oxide.trunk/view/head:/build/gyp_oxide是一個python腳本,make試圖啟動它。 你的PATH變量中有python.exe嗎?

金庫靈

我只是查看了整個專業文件的配置,發現了很多特定於unix的路徑,比如/ usr / local。 是否支持窗口作為構建目標? 如前所述,構建腳本無法使用cd; 命令。 也許你可以嘗試使用cygwin運行它?

金庫靈

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM