Я создаю приложение QML на Ubuntu 18.04 и хочу настроить свою среду разработки с помощью nix (и nixpkgs).Однако пути импорта QML перепутаны.Если я запускаю приложение, я получаю:
qrc: /main.qml: 14 Тип ToolButton недоступен
file: ///nix/store/013khcq6bcf1ln51wi6b2vk1xq2hx3ys-qtquickcontrols0-bin / lib / qt-5.12 / qml / QtQuick / Controls.2 / Material / qmldir: -1 модуль не может быть загружен для модуля ".nix.store.013khcq6bcf1ln51wi6b2vk1xq2hx3ys-qtquickcontrols2-5.12.0-bin.lib.qt5.12.qml.QtQuick.Controls.Material ":
Пространство имен модуля 'QtQuick.Controls.Material' не соответствует URI импорта.-5.12.qml.QtQuick.Controls.Material '
Установка QML2_IMPORT_PATH
в /nix/store/013khcq6bcf1ln51wi6b2vk1xq2hx3ys-qtquickcontrols2-5.12.0-bin/lib/qt-5.12/qml/
решает проблему, поэтому я считаю, что мне как-то не удается настроить nix-shell / environment.
Печать QLibraryInfo :: Qml2ImportsPath дает /nix/store/fjxzlpc693gbkgbh1vi199jvzgrkps4j-qtbase-5.12.0/lib/qt-5.12/qml
и пути импорта механизма QML:
- qrc: /qt-project.org/imports
- /nix / store / 013khcq6bcf1ln51wi6b2vk1xq2hx3ys-qtquickcontrols2-5.12.0-bin / lib / qt-5.12 / qml
- /nix/store/q02n0gycm1m2sqwzf4ccfysk8bh21jjq-user-environment/lib/qt-5.12/qml
- / nix / store / pf1ybjg0lh5y1rvalkdfw0axgd1dabpd-q * * ql 5 qtc 5-ый qq-5.12 qq1026 *
Мой shell.nix выглядит так:
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
# this will make all the build inputs from hello and gnutar
# available to the shell environment
inputsFrom = with pkgs; [ ];
buildInputs = with pkgs; [ range-v3 boost fmt gbenchmark cmake ninja valgrind gcc gtest graphviz qt5.qtbase qt5.qtdeclarative ];
}
И я пробовал это с nix-shell shell.nix
и с nix-shell --show-trace -E 'with import <nixpkgs> {}; libsForQt5.callPackage ./shell.nix { }'
.
Как правильно настроить среду / nix-shell без настройки QML2_IMPORT_PATH?