여기서 분명한 사실을 놓치고 있다면 용서해주십시오. 다른 플랫폼을위한 일부 응용 프로그램을 개발 중이며 모든 독점 라이브러리는/app/lib에 설치됩니다. 이것을 용이하게하기 위해 각 바이너리의 런타임 라이브러리 경로를 "/ app/lib"로 지정합니다. 이것은 잘 작동합니다. 그러나 링크가 (비록 그 디렉토리가 비어 있더라도) "/ app/lib"경로가 내 빌드 환경에 존재해야합니다. NetBeans를 사용하고 있습니다. 문제가 복잡해졌지만 gcc로 전달되는 "-Wl, -rpath/app/lib"를 볼 수 있습니다.컴파일 타임에 RPATH가 존재해야합니다.
필자는 빌드 환경에서 빈 "/ app/lib"를 만들 필요는 없지만 대상 플랫폼에서 파일 구조를 변경하고 싶지는 않습니다. 빌드 환경에서/app/lib를 삭제하면 빌드 할 때 찾을 수없는 오류가 발생합니다. 링크 시간에 존재하지 않아도 런타임 검색 경로를 지정하는 방법이 있습니까?
'-Wl, -rpath/app/lib'는 잘못된 옵션 사양이며'-Wl, -rpath -Wl,/app/lib'이어야합니다 (어쩌면 다른 방법이있을 수 있지만 작동하지 않습니다. 빌드 호스트에서 dir이 필요함). 빌드 옵션을 잘못 복사 했습니까? – Mat
돌아 왔고 다시 확인했지만 전화가 "gcc -o ... -Wl, -rpath/app/lib ..."로 작성되었음을 확인했습니다. NetBeans가이 메이크 파일을 작성하므로 유효하지 않은 경우 최종적으로 수정해야 할 수도 있습니다. 그러나/app/lib가 내 빌드 환경에 존재하고 결과 바이너리가 런타임에 경로를 사용하면 빌드 프로세스가 성공합니다. – LousyG
이상한 ... 나는 그것이 작동하지 않았지만. 내가 나중에 다시 볼 수 있는지, 조금 이상하게 보인다. – Mat