我正在尝试使用以下default.nix
构建halite:
with import <nixpkgs> {};
stdenv.mkDerivation rec {
pname = "halite";
version = "git";
name = "${pname}-${version}";
src = ./.;
buildInputs = [ cmake ];
}
但是当我运行nix-build default.nix
时,它无法链接以下错误:
[ 97%] Building CXX object CMakeFiles/halite.dir/main.cpp.o
[100%] Linking CXX executable halite
/nix/store/z470j6lybdsy4ql972k392490bprhd2g-binutils-2.28.1/bin/ld: cannot find -lpthread
/nix/store/z470j6lybdsy4ql972k392490bprhd2g-binutils-2.28.1/bin/ld: cannot find -lm
/nix/store/z470j6lybdsy4ql972k392490bprhd2g-binutils-2.28.1/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
可以找到完整的日志here
我尝试解决这个问题,但没有成功:
gcc
,pkgconfig
添加到buildInputs
nativeBuildInputs
和propergatedBuildInputs
为default.nix
项目撰写shell.nix
和cmake
的正确方法是什么?
答案 0 :(得分:0)
使用glibc.static
作为ppb的suggested解决,谢谢。
证明问题不是来自default.nix
,而是来自halite
尝试使用静态链接。
当我将CMakeList.txt
更改为使用动态链接时,构建就可以了。