LD_LIBRARY_PATH는 어디에 있나요? LD_LIBRARY_PATH 환경 변수를 설정하는 방법은 무엇입니까?

LD_LIBRARY_PATH는 어디에 있나요? LD_LIBRARY_PATH 환경 변수를 설정하는 방법은 무엇입니까?

저는 Unix를 사용하여 C++ 프로그램을 구축하려고 합니다.

오류가 발생했습니다.

Linking CXX executable ../../bin/ME
/usr/bin/ld: cannot find -lboost_regex-mt

LD_LIBRARY_PATH 환경 변수에서 libboost*의 위치를 ​​설정한 다음 원래 했던 것처럼 make를 호출하면 된다고 들었습니다.

-L /usr/lib64 -l boost_regex-mt

또는

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64

그런데 LD_LIBRARY_PATH는 어디에 있습니까? LD_LIBRARY_PATH 환경 변수를 설정하는 방법은 무엇입니까?

답변1

LD_LIBRARY_PATH 환경 변수를 설정하는 방법은 무엇입니까?

다음을 수행할 때 이미 설정했습니다.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64

그러나 이것은 문제를 해결하지 못합니다. $LD_LIBRARY_PATH동적으로 링크 가능한 라이브러리를 검색할 추가 디렉터리 목록을 제공하기 위해 실행 시 참조됩니다. 링크 타임에는 참조되지 않습니다(빌드 도구 자체에 필요한 라이브러리를 찾는 경우는 제외!).

빌드할 때 링커에게 라이브러리를 찾을 위치를 알려주려면 -L링커 옵션을 사용해야 합니다. 당신은 또한 다음과 같은 작업을 수행했습니다.

-L /usr/lib64

여전히 오류가 발생하면 라이브러리가 실제로 존재하는지 확인해야 합니다. 해당(또는 임의) 디렉토리에 파일 libboost_regex-mt.so이나 디렉토리가 있습니까? libboost_regex-mt.a유사한 파일은 libboost_regex-mt.so.othersuffix이 목적으로 계산되지 않습니다. 없는 경우 라이브러리용 배포 개발 패키지를 설치해야 할 수도 있습니다.

답변2

LD_LIBRARY_PATH에 새 경로를 영구적으로 추가하는 또 다른 방법은 다음과 같습니다.

.conf파일을 편집합니다 /etc/ld.so.conf.d/.

한 번 응용 프로그램을 설치했지만 다른 응용 프로그램에서 해당 라이브러리를 인식하지 못했습니다. 그런 다음 파일 /usr/local/hdf5/lib에 경로를 추가했습니다 . x86_64-linux-gnu.conf다음 줄을 입력하면 됩니다. 구하다.

그런 다음 실행sudo ldconfig

효율적인.

추신: 운영 체제 Ubuntu 14.04

답변3

~/.profile~/.bashrc쉘 및/또는 특정 초기화 파일(예: bash, ~/.zshenvzsh) 에서 설정할 수 있습니다 . 그런 다음 셸을 다시 시작해야 합니다(선택 사항에 따라 로그아웃했다가 다시 로그인할 수도 있음).

다음을 통해 설정을 확인할 수 있습니다.

env | grep '^LD_LIBRARY_PATH'

편집: LD_LIBRARY_PATH기계어 코드가 포함된 공유 라이브러리의 경우 해당 파일 이름은 일반적으로 .so이름에 포함되며, 그 뒤에는 다른 버전을 구별하기 위해 마침표로 구분된 숫자가 올 수 있습니다. 하지만 LD_LIBRARY_PATHABI 불일치로 인해 라이브러리를 찾지 못할 수도 있습니다 . 또한 언어(예: Perl 및 Python)와 패키지 .so에는 LD_LIBRARY_PATH.

답변4

해결책:

에 추가하다/etc/systemd/system/pm2-node.service

Environment=PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/app/nodejs/local/nvm/versions/node/v7.8.0/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/node/.pm2
Environment=LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2
Environment=OCI_LIB_DIR=/opt/oracle/instantclient_12_2

관련 정보