설치 후 공유 개체는 어디로 이동하며 해당 이름을 찾는 방법

설치 후 공유 개체는 어디로 이동하며 해당 이름을 찾는 방법

방금 다음 명령을 사용하여 SFML 라이브러리를 설치했습니다.apt-get install sfml-dev

/usr/lib설치 후 실제 공유 개체의 이름이 무엇인지 알아보기 위해 내 폴더로 이동했습니다 (그래서 컴파일러에게 무엇을 사용하라고 지시해야 할지 알았습니다).

하지만 이름에는 "SFML"이 없습니다.

그러나 /usr/include 디렉토리에 SFML 폴더가 있습니다.

그렇다면 공유 객체 파일이 내 디렉토리에 없으면 /usr/lib어디에 있습니까?

컴파일러에게 무엇을 사용하라고 지시해야 할지 알아내기 위해 어떻게 찾을 수 있나요?

g++ *.cpp -o exe -l?

답변1

gcc -print-search-dirs

컴파일러에서 사용하는 모든 검색 경로를 표시합니다.

dpkg -L libsfml-dev

실제 라이브러리를 찾으려면 패키지에 의해 설치된 모든 파일을 표시합니다. 단, dpkg -L실제로 라이브러리가 포함된 패키지에서 실행해야 합니다( libsfml-dev라이브러리 종속성이 많음).

어쨌든 라이브러리는 /usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)이제 데비안 파생물에서 흔히 발견됩니다. /usr/lib/x86_64-linux-gnu일반적인 64비트 PC에서. 컴파일러에 대해 걱정할 필요는 없습니다. 그러나 컴파일러는 이미 라이브러리를 찾을 수 있는 위치를 알고 있습니다. 단지 -l어떤 인수를 제공할지 알아내기만 하면 됩니다.

관련 정보