프로그램을 빌드/실행할 때 적절한 라이브러리를 찾을 수 있는 위치를 동적 링커에게 어떻게 알릴 수 있나요? [폐쇄]

프로그램을 빌드/실행할 때 적절한 라이브러리를 찾을 수 있는 위치를 동적 링커에게 어떻게 알릴 수 있나요? [폐쇄]

프로그램을 설치하고 실행하려고 합니다.다이어트. 이렇게 하려면 로컬에 최신 버전의 gcc를 설치해야 했습니다(루트/수퍼유저 권한이 없었기 때문에). 다음 명령을 사용하여 이 작업을 수행했습니다.

cd /scratch/wdavis/Tools/source/gcc-4.9.4/

./contrib/download_prerequisites

cd /scratch/wdavis/Tools/gcc/

/scratch/wdavis/Tools/source/gcc-4.9.4/configure --prefix /scratch/wdavis/Tools/local/ --disable-multilib

make bootstrap-lean

make install

모든 일이 잘 진행되고 있는 것 같습니다. 그런 다음 DSuite를 사용하기 시작했습니다.

git clone https://github.com/millanek/Dsuite.git

cd Dsuite/

cd utils/

python3 setup.py install --user --prefix=

cd ../

g++( )의 올바른 버전을 찾을 수 있는 위치를 알려주기 위해 Makefile을 편집해야 했습니다 /scratch/wdavis/Tools/local/bin/g++. 그런 다음 전화했습니다 make. 모든 것이 작동하는 것 같습니다. 그러나 DSuite에서는 다음과 같은 오류가 발생합니다.

Dsuite: /lib64/libstdc++.so.6: versionGLIBCXX_3.4.20'을 찾을 수 없습니다(Dsuite에 필요함)`

두 가지 답을 찾았습니다여기그리고여기-L/usr/local/lib64제안: "필요한 경우 빌드하고 실행 해 볼 수 있습니다 LD_LIBRARY_PATH=/usr/local/lib64.

export LD_LIBRARY_PATH=/scratch/wdavis/Tools/local/lib64/Dsuite를 실행하겠습니다. 그러나 make -L/scratch/wdavis/Tools/local/lib64/아무것도 작동하지 않았습니다. 즉, Dsuite에서 재구축 후에도 동일한 오류가 발생했습니다.

내 질문은 다음과 같습니다

  1. 런타임에 동적 링커가 올바른 디렉터리에서 라이브러리를 찾도록 프로그램을 어떻게 구성합니까?

  2. export LD_LIBRARY_PATH=/scratch/wdavis/Tools/local/lib64/실행하고 Dsuite를 실행하도록 설정한 다음 LD_LIBRARY_PATH를 재설정하지 않고 다른 프로그램을 계속 실행하면 어떻게 됩니까?

  3. LD_LIBRARY_PATH를 재설정하는 방법은 무엇입니까?

미리 감사드립니다.

답변1

make -L/scratch/wdavis/Tools/local/lib64/틀렸다.

-Lldmake가 아닌 GCC 및 링커 플래그(예: )입니다 .

애플리케이션 언어에 따라 CFLAGS 또는 CXXFLAGS 내보내기를 통해 이를 내보내야 합니다. LDFLAGS를 통해 내보낼 수도 있습니다. 이는 모두 애플리케이션이 구축되고 링크되는 방식에 따라 다르며, GCC 또는 ld를 사용하여 최종 바이너리/라이브러리를 컴파일할 수 있습니다.

예를 들어

export CFLAGS="-L/scratch/wdavis/Tools/local/lib64/"
export CXXFLAGS="-L/scratch/wdavis/Tools/local/lib64/"
export LDFLAGS="-L/scratch/wdavis/Tools/local/lib64/"
./configure && make

LD_LIBRARY_PATHglibc의 플래그이며 그 목적은 다음과 같습니다.구현하다연결하는 대신 응용프로그램을 사용하세요.

설명서를 주의 깊게 읽어 보십시오. 안에 다 들어있어요 man gcc,,,man ldman ld.so

  1. man bash

당신은 그렇습니다unset VAR_NAME

관련 정보