Rust 프로그램을 컴파일할 수 있도록 "ld: can find -lgbm and -linput"을 수정하려면 무엇을 설치해야 합니까?

Rust 프로그램을 컴파일할 수 있도록 "ld: can find -lgbm and -linput"을 수정하려면 무엇을 설치해야 합니까?

dnf search linput결과 가 dnf search lgbm나오지 않습니다. Fedora에서 어떻게 얻을 수 있나요?

편집자: 뒷이야기

Rust 프로그램을 만들려고 하는데 뭔가 빠진 것 같아서 컴파일이 되지 않습니다. 그것은 말한다:

  = note: /usr/bin/ld: cannot find -lxkbcommon
          /usr/bin/ld: cannot find -lxkbcommon
          /usr/bin/ld: cannot find -linput
          /usr/bin/ld: cannot find -lgbm
          collect2: error: ld returned 1 exit status

설치했습니다 lxkbcommon(편집: 실제로 설치했습니다 libxkbcommon. 어떻게 놓쳤는지 잘 모르겠습니다.). dnf install libxkbcommon-devel그러면 출력은 다음과 같습니다.

  = note: /usr/bin/ld: cannot find -linput
          /usr/bin/ld: cannot find -lgbm
          collect2: error: ld returned 1 exit status

그래서 뭔가가 필요한 것 같은데 linput, lgbm그것도 찾을 수 없어서 dnf search빈손으로 Google에 올라오고 있습니다.

답변1

ld당신이 받고 있는 것은 당신이 찾고 있는 라이브러리를 사용할 수 없다고 불평하는 링커( )의 오류 메시지입니다 .

이와 같은 메시지는 /usr/bin/ld: cannot find -linput실제로 이름이 libinput.so. 이 플래그는 라이브러리 이름을 따라야 하는 -l명령줄 인수( to ld또는 to )이며, 접두사와 접미사를 포함하여 파일 이름을 형성하는 데 사용됩니다(동적으로 로드 가능한 라이브러리의 경우 일반적으로 대부분의 라이브러리에서 사용됩니다). Fedora를 포함한 배포판.)gcclib.so

따라서 필요한 파일은 libinput.so및 입니다 libgbm.so.

그런 다음 를 사용하여 dnf provides해당 파일을 검색할 수 있습니다. 64비트 배포판을 사용한다고 가정하면 이러한 라이브러리는 에 위치하므로 /usr/lib64전체 명령은 다음과 같습니다.

$ dnf provides /usr/lib64/libinput.so
libinput-devel-1.12.6-3.fc30.x86_64 : Development files for libinput
Repo        : rawhide
Matched from:
Filename    : /usr/lib64/libinput.so

$ dnf provides /usr/lib64/libgbm.so
mesa-libgbm-devel-19.0.0~rc7-1.fc30.x86_64 : Mesa libgbm development package
Repo        : rawhide
Matched from:
Filename    : /usr/lib64/libgbm.so

정확한 디렉토리를 모르는 경우, dnf provides '*/libinput.so'검색 중인 파일에 대해 거의 알지 못하는 경우(그리고 유용한 것을 찾기 위해 더 많은 검색 결과를 정렬하려는 경우) 또는 다른 와일드카드를 사용할 수도 있습니다.

귀하의 경우 필요한 것은 다음과 같습니다.

$ sudo dnf install libinput-devel mesa-libgbm-devel

그 시점부터 dnf필요한 다른 모든 종속성도 가져와야 합니다. 여러분이 구축하고 있는 소프트웨어를 구축할 때 이것이 여러분이 놓치고 있는 모든 것이기를 바랍니다. 그러나 라이브러리가 누락된 경우 이 정보를 사용하면 해당 라이브러리를 제공하는 패키지를 찾을 수 있습니다(Fedora에서 사용 가능하다고 가정).

답변2

이것이 이와 관련하여 내가 찾은 것과 동일한 경우:

https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html

lightGBM은 트리 기반 학습 알고리즘을 사용하는 그래디언트 부스팅 프레임워크입니다. 이는 다음과 같은 장점을 가지고 분산되고 효율적으로 설계되었습니다.

  • 훈련이 더 빠르고 효율적입니다.
  • 메모리 사용량을 줄입니다.
  • 더 나은 정확성.
  • 병렬 및 GPU 학습을 지원합니다.
  • 대규모 데이터 처리가 가능합니다.

Linux에서는 CMake와 gcc 또는 Clang을 사용하여 LightGBM을 구축할 수 있습니다.

CMake를 설치합니다.

다음 명령을 실행하십시오.

git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM
mkdir build ; cd build
cmake ..
make -j4

관련 정보