我每天都在使用 NixOS,并且正在尝试重新开发 Flutter 应用程序。我目前正在尝试构建 (
flutter run
) LocalSend 应用程序。
问题:此应用程序具有
system_tray
依赖项(请参阅 Pub.dev 或 Github)。问题在于 system_tray
包依赖于 ayatana-appindicator
库(请参阅下面的编译错误):
$> flutter run
Launching lib/main.dart on Linux in debug mode...
CMake Error at flutter/ephemeral/.plugin_symlinks/system_tray/linux/CMakeLists.txt:29 (message):
The `system_tray` package requires ayatana-appindicator3-0.1 or
appindicator3-0.1.
“没什么大不了的”我一开始以为,我只需要安装这个库。在搜索 Nix 软件包后,我找到了
libayatana-appindicator
软件包。伟大的 !所以我运行 nix-shell -p libayatana-appindicator
然后重新运行 flutter run
但我仍然遇到相同的错误。我认为这可能不是正确的软件包,所以我尝试了此处列出的所有软件包但仍然是相同的错误。
在深入挖掘 system_tray
包的repo 后,我在
linux/CMakeList.txt
中找到了这一行:
pkg_check_modules(APPINDICATOR IMPORTED_TARGET ayatana-appindicator3-0.1)
所以问题似乎是这条线正在专门寻找 ayatana-appindicator3-0.1
包,但没有找到它,因为它在 NixOs 上被命名为
libayatana-appindicator
。所以我的问题是:
如何将“别名”libayatana-appindicator
设置为
ayatana-appindicator3-0.1
以便编译器可以找到它?或者也许如果您有任何更好的想法,我也会喜欢它。 感谢您的阅读,我希望我已经能够清楚地表达我的问题和思考过程。
pkg-config
丢失了。 😅我在CMakeList.txt中找到了提示。另外,我必须以超级用户身份运行它,但我不明白为什么...... 我正在使用以下 nix-shell 文件并且它可以工作。
{ pkgs ? import <nixpkgs> {} }:
with pkgs;
mkShell {
nativeBuildInputs = [
flutter
gtk3
pkg-config
libappindicator
libappindicator-gtk3
];
}