![/usr/local/lib에는 Aptitude 보고서가 설치되지 않은 라이브러리가 포함되어 있습니다.](https://rvso.com/image/1127274/%2Fusr%2Flocal%2Flib%EC%97%90%EB%8A%94%20Aptitude%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EA%B0%80%20%EC%84%A4%EC%B9%98%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%98%EC%96%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
Ubuntu에서 특정 라이브러리(SDL)를 사용하는 프로젝트를 빌드하려고 합니다. 프로젝트는 이전 버전의 라이브러리(libSDL-1.2)를 사용합니다. 최신 라이브러리를 설치하는 실수를 저질렀지만 이후 제거했습니다. 그러나 여러 Ubuntu 라이브러리 디렉터리에서 여전히 그 흔적을 찾을 수 있습니다.
일부 디렉토리에는 적절한 버전이 있습니다(/usr/lib/i386-linux-gnu/) 다른 버전에는 최신의 잘못된 버전(/usr/로컬/lib/). 이러한 불일치가 발생하는 이유는 무엇이며 libSDL2를 완전히 제거하려면 어떻게 해야 합니까?
답변1
/usr/local/
수동 설치 또는 패키지의 설치 프로그램 스크립트 등으로 다운로드한 추가 파일로 인해 패키지 관리자가 설치하지 않은 파일이 포함되어 있습니다(대부분 으로 이동하지만 /opt/
).
따라서 APT는 해당 디렉터리 아래의 파일을 인식하지 못합니다. 예를 들어 아카이브를 추출하여 라이브러리를 수동으로 설치한 경우에도 동일한 방법으로 제거할 수 있습니다.
그러나 수동으로 설치하지 않은 경우 주의하십시오. 이 경우 더 나은 도움을 받으려면 어떻게 설치했는지 알려주십시오.
또 다른 가능성은 APT를 사용하여 libsdl2를 설치하는 것이 아니라 다른 것에 의해 다운로드되었을 수 있기 때문에 라이브러리가 있을 수 있다는 것입니다. 예를 들어 Valve의 소스 엔진은 SDL2를 사용합니다. Half Life나 Portal과 같은 소스 기반 게임을 설치하면 Steam은 자체 라이브러리를 다운로드합니다(단, 사용자 홈 디렉터리에 보관함). 비슷한 것에서 나올 수도 있습니다. 그것이 어디서 왔는지 모른다면 그대로 두십시오. 올바르게 수행되면(아래 참조) 개발을 방해하지 않으며 삭제하면 다른 응용 프로그램이 중단될 수 있습니다.
SDL1.2를 계속 사용하려면 다른 라이브러리를 제거하지 않고도 그렇게 할 수 있습니다. 컴파일러/링커에게 이전 라이브러리를 사용하도록 지시하세요. SDL2 공유 라이브러리는 항상 호출되므로 가 libsdl2-....so
없는 올바른 라이브러리에 간단히 연결하세요 .sdl2