나는 정상적인 동작의 일부로 fork()/execs()라는 불안정한 레거시 코드가 포함 된 다른 실행 파일을 공유하는 C++ 공유 라이브러리가 있습니다. 이 실행 파일은이 라이브러리 이외에는 유용하지 않으므로 PATH 디렉토리에 두는 것을 피하고 싶습니다. 또한 다양한 위치에 여러 복사본을 설치할 수 있기를 원하므로 하드 코딩 된 경로는 바람직하지 않습니다. exec()가이 실행 파일을 찾을 수 있도록하는 RPATH와 동일한 것이 있습니까? 또는 라이브러리 자체에서 공유 라이브러리의 rpath를 쿼리 할 수 있습니까?실행 파일에 해당하는 RPATH
편집 :이 게시물은 후자가 가능하다는 것을 나타냅니다. 아무도 질문 된 질문에 대한 답변을 알고 있기 때문에이 정보를 공개 할 것입니다. Is there a way to inspect the current rpath on Linux?
홉스, 자동 도구를 사용하고 있습니까? –
larsmans : 자동 도구가 없습니다. Cmake. – tgoodhart
확인. 별로 중요하지 않습니다. Autotools는 백엔드 바이너리를'$ prefix/libexec' 디렉토리에 두는 것을 지원합니다.이 디렉토리는이 장소의 전통적인 장소입니다. FHS에서는'/ usr/{local /} lib/PACKAGE'입니다. 그 질문에 직접 대답하지 않지만 적어도 우분투는'RPATH'에 대해 조언합니다. –