从nixpkgs使用qt5时如何配置QML导入路径

时间:2019-03-31 08:15:11

标签: qml nix nixpkgs

我正在Ubuntu 18.04上构建QML应用程序,并希望使用nix(和nixpkgs)设置开发环境。但是,QML导入路径混乱了。如果运行该应用程序,则会得到:

  

qrc:/main.qml:14类型的工具按钮不可用

     

file:///nix/store/013khcq6bcf1ln51wi6b2vk1xq2hx3ys-qtquickcontrols2-5.12.0-bin/lib/qt-5.12/qml/QtQuick/Controls.2/Material/qmldir:-1插件无法为模块“加载。 nix.store.013khcq6bcf1ln51wi6b2vk1xq2hx3ys-qtquickcontrols2-5.12.0-bin.lib.qt-5.12.qml.QtQuick.Controls.Material“:

     

模块名称空间'QtQuick.Controls.Material'与导入URI'.nix.store.013khcq6bcf1ln51wi6b2vk1xq2hx3ys-qtquickcontrols2-5.12.0-bin.lib.qt-5.12.qml.QtQuick.Controls.Material'不匹配

QML2_IMPORT_PATH设置为/nix/store/013khcq6bcf1ln51wi6b2vk1xq2hx3ys-qtquickcontrols2-5.12.0-bin/lib/qt-5.12/qml/可以解决此问题,因此我认为我无法以某种方式设置我的nix-shell /环境。

打印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-qtdeclarative-5.12.0-bin/lib/qt-5.12/qml

我的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.nixnix-shell --show-trace -E 'with import <nixpkgs> {}; libsForQt5.callPackage ./shell.nix { }'进行了尝试。

如何在不设置QML2_IMPORT_PATH的情况下正确设置环境/ nix-shell?

0 个答案:

没有答案