GCC를 사용하여 실행 파일을 링크하고자하는 공유 라이브러리가 있습니다. 공유 라이브러리에는 libNAME.so 형식이 아닌 비표준 이름이 있으므로 일반 -l 옵션을 사용할 수 없습니다. (파이썬 확장이기도하고 'lib'접두어가 없습니다.)libNAME.so 명명 규칙을 따르지 않는 라이브러리에 대해 -l도 하드 코딩 경로없이 GCC를 사용하여 링크하는 방법?
라이브러리 파일의 경로를 링크 명령 행에 직접 전달할 수 있지만 이로 인해 라이브러리 경로가됩니다 실행 파일에 하드 코드됩니다. 예를 들어
:
g++ -o build/bin/myapp build/bin/_mylib.so
실행 파일로 하드 코딩 할 수있는 경로를 유발하지 않고이 라이브러리에 연결하는 방법이 있나요? 당신은 g의 ++는 다음 호출 작업 디렉토리에 공유 라이브러리를 복사 할 수있는 경우
이것은 선생님이 찾고자하는 것입니다. 감사! – kbluck
도와 줘서 고마워. –
이 결과는 표준 sonames에 대해 일반적으로하는 것처럼'_mylib.so' 만 포함하는 대신'-l :'을 사용하여 링크 된 라이브러리에'build/bin/_mylib.so'가 임베드 된 결과입니다. 결과적으로,'_mylib.so'를로드하려고하면, 그 전체 경로 ('ldd'는 그것을 보여줄 것입니다)를 찾고,'_mylib.so'를 찾지 않을 것입니다. –