Как настроить путь импорта QML при использовании qt5 из nixpkgs - PullRequest
0 голосов
/ 31 марта 2019

Я создаю приложение 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?

...