
저는 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, ~/.zshenv
zsh) 에서 설정할 수 있습니다 . 그런 다음 셸을 다시 시작해야 합니다(선택 사항에 따라 로그아웃했다가 다시 로그인할 수도 있음).
다음을 통해 설정을 확인할 수 있습니다.
env | grep '^LD_LIBRARY_PATH'
편집: LD_LIBRARY_PATH
기계어 코드가 포함된 공유 라이브러리의 경우 해당 파일 이름은 일반적으로 .so
이름에 포함되며, 그 뒤에는 다른 버전을 구별하기 위해 마침표로 구분된 숫자가 올 수 있습니다. 하지만 LD_LIBRARY_PATH
ABI 불일치로 인해 라이브러리를 찾지 못할 수도 있습니다 . 또한 언어(예: 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