NixOS에서 "ld: 찾을 수 없음 -lc"

NixOS에서 "ld: 찾을 수 없음 -lc"

다음과 같은 Nix 파생이 있습니다.

with import <nixpkgs> {};

stdenv.mkDerivation rec {
  name = "scipoptsuite-${version}";
  version = "4.0.0";

  src = fetchurl {
    url = "http://scip.zib.de/download/release/scipoptsuite-${version}.tgz";
    sha256 = "087535760eae3d633e2515d942a9b22e1f16332c022be8d093372bdc68e8a661";
  };

  buildInputs = [ zlib gmp readline ];
}

이상한 점은 를 실행할 때 nix-build scipoptsuite.nix일부 파일이 제대로 컴파일되지만 다음과 같은 결과가 나온다는 것입니다.

/nix/store/x9v0yxy5iybp2m2ccqwqkvxgjy7zrw8f-binutils-2.28/bin/ld: cannot find -lgmp
/nix/store/x9v0yxy5iybp2m2ccqwqkvxgjy7zrw8f-binutils-2.28/bin/ld: cannot find -lm
/nix/store/x9v0yxy5iybp2m2ccqwqkvxgjy7zrw8f-binutils-2.28/bin/ld: cannot find -lz
/nix/store/x9v0yxy5iybp2m2ccqwqkvxgjy7zrw8f-binutils-2.28/bin/ld: cannot find -lc

잘못된 명령은 다음과 같습니다:

gcc -O3 -m64 -mtune=native obj/O.linux.x86_64.gnu.static.opt/zimpl.o obj/O.linux.x86_64.gnu.static.opt/xlpglue.o obj/O.linux.x86_64.gnu.static.opt/zlpglue.o obj/O.linux.x86_64.gnu.static.opt/ratlpstore.o obj/O.linux.x86_64.gnu.static.opt/ratlpfwrite.o obj/O.linux.x86_64.gnu.static.opt/ratmpswrite.o obj/O.linux.x86_64.gnu.static.opt/ratmstwrite.o obj/O.linux.x86_64.gnu.static.opt/ratordwrite.o obj/O.linux.x86_64.gnu.static.opt/ratpresolve.o -Llib -lzimpl-3.3.4.linux.x86_64.gnu.opt -lgmp -lm -lz -static -o bin/zimpl-3.3.4.linux.x86_64.gnu.static.opt

이 오류가 발생하는 이유를 아는 사람이 있습니까?

답변1

nixpkgs의 대부분 패키지에는 기본적으로 정적 라이브러리가 없습니다. 예를 들어 glibc.static정적을 얻으려면 빌드 입력을 추가해야 합니다 .-lc

관련 정보