未找到 Nixos X11 头文件

未找到 Nixos X11 头文件

当尝试在 NixOs 上从源代码构建uckless/surf和suckless/st时,make找不到X11头文件,例如X11/X.hX11/Xatom.h。我确实已经Xlib安装了。我还依稀记得 nixos 将库放在一个有趣的地方,而且我看到有人建议将一些路径放入C_INCLUDE变量。感觉好像快到了,还缺少什么吗?

更新:添加解决了和/home/username/.nix-profile/include的问题,但现在它抱怨我安装了但它没有显示。我在哪里可以找到它?X.hXatom.hX11/extensions/render.hlibXrender

答案1

surf 和 st 已经打包(这里这里) 在 nixpkgs 中

我喜欢 nix 的一件事是可以覆盖任何构建过程中的步骤,这也意味着您可以更改代码源(例如:src属性)。

举个例子,假设您将 surf 克隆到了/path/to/surf.一个default.nix将覆盖src,但使用所有其他构建步骤的文件将是:

{ pkgs ? import <nixpkgs> {}
}:

pkgs.surf.overrideDerivation (old: {
  src = /path/to/surf;
})

上面你会使用nix-build default.nix

您还可以使用的另一种方法是使用nix-shell.nix-shell是一个工具,可以将您带入 nix 环境,不运行 nix 构建步骤,但所有依赖项(buildInputs、propagatedBuildInputs)都可供您使用。有关更多信息,nix-shell您可以阅读这里

使用nix-shell你可以这样做:

% cd /path/where/above/mentioned/default.nix/is
% nix-shell

或者你可以克隆 nixpkgs

% cd /path/to/nixpkgs
... here edit file pkgs/applications/misc/st/default.nix
% nix-build -A st    # to build st
% nix-shell -A st    # to enter development environment

我希望以上有帮助。

相关内容