/usr/local/lib 내의 하위 디렉터리에 라이브러리를 설치하시겠습니까?

/usr/local/lib 내의 하위 디렉터리에 라이브러리를 설치하시겠습니까?

저는 CMake에서 설치 규칙을 설정하는 많은 구성 요소 또는 "하위 모듈"(부스트에 많은 구성 요소가 있는 것과 유사)을 포함하는 대규모 라이브러리를 가지고 있습니다.

내 라이브러리가 myLib 버전 1.2.3이라고 가정해 보겠습니다. 내 질문은 내 라이브러리가 여러 구성 요소로 인해 많은 파일이나 출력 파일을 생성하므로 .a이러한 파일을 예를 들어 또는 의 하위 폴더에 설치할 수 있습니까?입니다..so/usr/local/lib//usr/local/lib/myLib//usr/local/lib/myLib-1.2.3/

저는 일반적으로 Windows 개발자이지만 Ubuntu를 이중 부팅하고 있으며 Unix의 다른 개발자가 내 라이브러리를 가능한 한 쉽게 설치할 수 있기를 바랍니다.

libboost-all-dev모든 파일을 에 직접 설치하는 것을 보았지만 /usr/local/lib/이로 인해 lib 폴더가 매우 복잡해졌습니다. 많은 라이브러리 파일이 포함된 이 폴더에 "혼잡함을 추가"해도 문제가 됩니까?

또한 내 라이브러리 파일의 제목에 버전을 포함해야 할지 고민 중입니다. 이렇게 하는 기준은 무엇인가요? 예 myLib-1.2.3.a를 들어 myLib.a이것이 주요 질문과 약간 벗어난 주제라는 것을 알고 있지만 lib 폴더에 직접 설치하는 경우 파일 등에 버전 번호를 포함하는 것이 더 유리할 수 있으므로 약간 관련이 있다고 생각합니다.

또한 - 소프트웨어 엔지니어링과 밀접한 관련이 있다는 것을 알고 있기 때문에 이것이 잘못된 스레드라면 사과드립니다. 그러나 다른 무엇보다 Linux 폴더 구조와 더 관련이 있다고 생각합니다!

답변1

시스템 lib 디렉토리 외부에 라이브러리를 설치하고 다른 사용자가 이에 액세스하도록 하려면 /etc/ld.so.conf.d/라이브러리를 배치한 디렉토리가 포함된 텍스트 파일을 만들고 lib 를 실행하십시오 ldconfig. 충돌이 없으면 시스템이 라이브러리를 올바르게 선택합니다. 컴파일러/링커에 제공/설정하는 것 -l외에 컴파일러 및 링커 설정을 망칠 필요가 없습니다 -L.

관련 정보