clang을 사용하여 프로그램을 만들고 외부 라이브러리를 사용하여 프로그램을 빌드하고 있습니다. 나는 그들이 제공 한 바이너리 (/usr/lib/libary.so)로 잠시 동안 개발해 왔지만, 이제는 더 최신 버전으로 넘어 가고 싶다.실행 파일에서 동적 라이브러리의 경로 변경
소스 코드를 다운로드하고 빌드하여 포함 파일과 새 라이브러리 (내 ~/라이브러리/빌드 디렉토리에 있음)가 생성됩니다.
내 코드를 컴파일, 나는 이것은 최신의 헤더에 포함하고, 올바른 라이브러리를 (-L 플래그없이, 내가를 얻을 수 있기 때문에, 그것은 올바른 라이브러리를 찾아 알고 찾아clang++ main.cpp -I ~/library/include -L ~/library/build/lib -llibrary
사용 NewlyIntroducedFunction에 대한 정의되지 않은 참조 '오류). 그래서
library.so => /usr/lib/library.so
내가 가정 ./a.out에 LDD를 실행
./a.out: symbol lookup error: ./a.out: undefined symbol: NewlyIntroducedFunction
나에게 선을 보여줍니다 : 나는 a.out을 실행하려고하면
그러나, 나는 오류 컴파일 타임에 올바른 라이브러리가 사용되고 있지만 런타임에는 그렇지 않습니다. ~/library/PATH의 시작 부분에 빌드를 추가했는데 작동하지 않았습니다.
정확한 버전의 library.so를 얻으려면 어떻게해야합니까?