문제

응용 프로그램을 설정하기에 가장 좋은 곳은 무엇입니까? LD_LIBRARY_PATH Solaris의 변수? 어떻게

LD_LIBRARY_PATH

가변 작업?

우리는 현재 그것을 설정했습니다 .kshrc, 그러나 다른 응용 프로그램에는 다른 버전의 메시징 프레임 워크가 필요하지만 이러한 응용 프로그램은 동일한 용도로 실행되므로 다른 응용 프로그램이 필요합니다. LD_LIBRARY_PATH, 당신의 의견으로는이 변수를 설정하기에 가장 좋은 장소는 무엇입니까?

기본적으로 사용자 환경 대신 응용 프로그램 의이 변수 경로를 어떻게 만드는 방법을 알아 내려고 노력하고 있습니다.

도움이 되었습니까?

해결책

일반적으로 응용 프로그램을 시작하는 쉘 스크립트가 있습니다. 쉘 스크립트에서는 해당 앱에 필요한 모든 것에 ld_library_path를 설정 한 다음 스크립트가 해당 앱을 시작하도록합니다. 그렇게하면 경로가 해당 응용 프로그램에 대해서만 설정되어야합니다.

다른 팁

공식적인 설명을 찾을 수 있습니다 LD_LIBRARY_PATH "ld.so.1"의 맨 페이지에서, 즉 "man ld.so.1"을 실행합니다. 또한 런타임 링커에서 존중하는 다른 변수를 설명합니다.

에 추가 LD_LIBRARY_PATH, 실행 파일 및 공유 라이브러리에는 라이브러리에 대한 검색 경로가 내장 될 수도 있습니다. 직접 연결 한 응용 프로그램을 실행하는 경우 LD의 -R 옵션을 사용하여 내장 경로를 설정할 수 있습니다 (SUN CC와 GCC는 동일한 작업을 수행 할 수있는 옵션이 있습니다). 이를 통해 사용을 피할 수 있습니다 LD_LIBRARY_PATH 처음에.

Vladr, Alanc가 맞습니다.

Solaris에서 ld_library_path를 설정하는 것이 좋습니다. 조금도.

라이브러리 또는 실행 파일에 특정 runpath를 굽는 경우 -r 플래그를 링커에 사용해야합니다. GCC로 빌드하는 경우 -wl, rpath (생각합니다)를 사용하십시오.

건축 후 단계 (예 : 재 컴파일 소스가 없기 때문에)를 위해이 작업을 수행 해야하는 경우 Elfedit (1)가 많은 도움이됩니다. Manpage와 Linker+Libraries Guide에서 문서화되어 있습니다. http://docs.oracle.com/cd/e26502_01/html/e26507/index.html

CRLE 응답이 가장 정확합니다. Solaris에서 LD_LIBRARY_PATH 사용해서는 안됩니다. 대신 CRLE를 사용하십시오. 현재 경로를 보려면 그 자체로 "crle"을 실행하십시오. 목록을 업데이트하려면 사용하십시오 crle -u -l /path/to/your/lib/directory. 그만큼 -u 시스템 구성에 대한 변경 사항을 작성하려면 필요합니다. 그렇지 않으면 변경 사항이 일시적입니다. 더 많은 옵션은 Man Page를 참조하십시오.

방금 Global Ld_library_Path가 적용되지 않는 사례를 발견했습니다. 스크립트를 랩핑하고 앱 전에 ld_library_path를 설정해야했습니다. CRLE는 BlastWave의 PKGutil을 통해/OPT/CSW/LIB에 많은 LIB를 설치 한 경우 좋은 글로벌 솔루션입니다.

.profile 또는 .profile.user 파일을 확인할 수 있습니다. 댓글이 내려진 항목이 있습니다. 파손되었으므로 사용하는 것이 권장되지 않습니다. 변수를 사용하지 않고 깃발에 값을 전달하여 바이너리를 구축해야합니다.

CRLE 명령을 사용할 수 있습니다.

crle -l/path/to/your/lib/file

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top