我正在尝试在 Qt Creator 中创建一个新的 Qt Quick 应用程序。然而,每次我尝试构建该项目时,它甚至在执行任何操作之前都会立即失败。
/PATH/QMLTest/ds-subbuild/ds-populate-prefix/tmp/ds-populate-gitclone.cmake:39: error: Failed to clone repository:
'https://code.qt.io/qt-labs/qtquickdesigner-components.git'
:-1: error: ninja: build stopped: subcommand failed.
/PATH/QMLTest/CMakeLists.txt:32: error: Build step for ds failed: 1
Call stack:
/PATH/QMLTest/CMakeLists.txt:32 (include)
/PATH/QMLTest/qmlcomponents:16 (FetchContent_Populate)
/opt/homebrew/Cellar/cmake/3.28.3/share/cmake/Modules/FetchContent.cmake:1819 (cmake_language)
/opt/homebrew/Cellar/cmake/3.28.3/share/cmake/Modules/FetchContent.cmake:1819:EVAL:2 (__FetchContent_directPopulate)
/opt/homebrew/Cellar/cmake/3.28.3/share/cmake/Modules/FetchContent.cmake:1679 (message)
:-1: error: CMake process exited with exit code 1.
:-1: error: CMake project configuration failed. No CMake configuration for build type "Debug" found.
克隆存储库似乎存在一些问题https://code.qt.io/qt-labs/qtquickdesigner-components.git
,我什至无法使用浏览器访问它。我不知道该怎么做才能解决这个问题。如果您需要更多信息,请告诉我。
这是终端构建输出:
$ cmake -S '/PATH/FirstQML' -B /PATH/Qt/Builds/build-FirstQML-Qt_6_6_1_for_macOS-Debug
-- The CXX compiler identification is AppleClang 15.0.0.15000100
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Building designer components.
[1/9] Creating directories for 'ds-populate'
[1/9] Performing download step (git clone) for 'ds-populate'
Cloning into 'ds-src'...
fatal: unable to access 'https://code.qt.io/qt-labs/qtquickdesigner-components.git/': Failed to connect to code.qt.io port 443 after 75 ms: Couldn't connect to server
Cloning into 'ds-src'...
fatal: unable to access 'https://code.qt.io/qt-labs/qtquickdesigner-components.git/': Failed to connect to code.qt.io port 443 after 74 ms: Couldn't connect to server
Cloning into 'ds-src'...
fatal: unable to access 'https://code.qt.io/qt-labs/qtquickdesigner-components.git/': Failed to connect to code.qt.io port 443 after 73 ms: Couldn't connect to server
-- Had to git clone more than once: 3 times.
CMake Error at ds-subbuild/ds-populate-prefix/tmp/ds-populate-gitclone.cmake:39 (message):
Failed to clone repository:
'https://code.qt.io/qt-labs/qtquickdesigner-components.git'
FAILED: ds-populate-prefix/src/ds-populate-stamp/ds-populate-download /PATH/Qt/Builds/build-FirstQML-Qt_6_6_1_for_macOS-Debug/_deps/ds-subbuild/ds-populate-prefix/src/ds-populate-stamp/ds-populate-download
cd /PATH/Qt/Builds/build-FirstQML-Qt_6_6_1_for_macOS-Debug/_deps && /opt/homebrew/Cellar/cmake/3.28.3/bin/cmake -P /PATH/Qt/Builds/build-FirstQML-Qt_6_6_1_for_macOS-Debug/_deps/ds-subbuild/ds-populate-prefix/tmp/ds-populate-gitclone.cmake && /opt/homebrew/Cellar/cmake/3.28.3/bin/cmake -E touch /PATH/Qt/Builds/build-FirstQML-Qt_6_6_1_for_macOS-Debug/_deps/ds-subbuild/ds-populate-prefix/src/ds-populate-stamp/ds-populate-download
ninja: build stopped: subcommand failed.
CMake Error at /opt/homebrew/Cellar/cmake/3.28.3/share/cmake/Modules/FetchContent.cmake:1679 (message):
Build step for ds failed: 1
Call Stack (most recent call first):
/opt/homebrew/Cellar/cmake/3.28.3/share/cmake/Modules/FetchContent.cmake:1819:EVAL:2 (__FetchContent_directPopulate)
/opt/homebrew/Cellar/cmake/3.28.3/share/cmake/Modules/FetchContent.cmake:1819 (cmake_language)
qmlcomponents:16 (FetchContent_Populate)
CMakeLists.txt:32 (include)
-- Configuring incomplete, errors occurred!
感谢任何有助于解决此问题的帮助或提示。提前致谢!
code.qt.io 今天由于某种未知原因而关闭,但幸运的是,默认的 Qt 应用程序实际上并不那么依赖它。如果您在 CMakeLists.txt 中将 BUILD_QDS_COMPONENTS 选项从 ON 切换为 OFF:
或者对于旧版本,当它是缓存变量时:
那么它不会尝试构建和链接 Design Studio 组件,但您的应用程序将在运行时崩溃并出现错误:
因为它在 import//Constants.qml 中依赖于它,但默认情况下似乎未使用此依赖项,因此应用程序在没有它的情况下运行得很好,甚至可以在 Design Studio 中启动。要删除依赖项,只需删除 Constants.qml 中的几行即可:
它应该使您的应用程序现在运行得很好,但是当服务器启动时,为了避免将来出现此问题,明智的做法是从https://code.qt.io/qt-labs/qtquickdesigner克隆依赖存储库-components.git并替换/qmlcomponents 中的FetchContent_Declare调用,使其使用本地文件,而不是每次配置项目时从远程获取: