GCC (연결)는 절대 경로로 지정되었을 때 라이브러리를 찾을 수 없다는 것을 나타냅니다. 필자가 원하는 이유는 모든 라이브러리가 절대 경로로 해석되도록하는 빌드 시스템을 갖추고 있으므로 순서가 지정된 고유 항목 집합을 유지할 수 있기 때문입니다. 어떤 사람들은이 버그라고 생각하고, 다른 사람들이 이제까지 일한 사실이 버그라고 생각하고, 고정 된 위치 절대 경로로 라이브러리를 지정하기위한 GCC 동작은 무엇입니까?
g++ (...) -l/path/to/library.so
나는 버그 리포트를 보았다.
어떤 사람이 함께 경로를 선행해야한다고 논의가 있었다 ':'
어쨌든 작동하지 않았다가. 그래서 나는 그것을 "접두사"GCC에 지정된 라이브러리 경로의 일치와 절대 라이브러리 경로를 잘라 않다면 절대 라이브러리 경로를 절단하는 코드를 넣어 빌드 시스템에서 테스트합니다.g++ (...) -L/path/to -llibrary.so
이것은 효과가 있습니다.
나는 또한 이것을 시도했다.
g++ (...) -L/path/to -l/path/to/library.so
입니다. 9 (조사 중이지만 .. 빌드 스크립트에서 오류가있는 것처럼 보입니다.)
GCC에 지정된 검색 경로가 절대 경로로 지정된 라이브러리의 "접두사"인 경우 라이브러리를 찾은 것 같습니다 . 또한 제공된 라이브러리 경로의 정렬 된 목록에서 첫 번째 히트를 차지한다고 가정합니다.
내 질문.
- 이 동작을 지원합니까?
- 빌드 스크립트에서 절대 라이브러리 경로를 자르거나 절대 경로를 전달하는 것이 더이 그것을입니다.
나는 몇 가지 관련 문제는 여기에 가져주의 사항 :
이는 "비는 검색"전체 경로가있을 때, 따라서 어떤 런타임 라이브러리 경로를 무시 실행에 "에 불"을 나타냅니다 처형 됐어? 이 올바른지 ? 그렇다면 명령 행에서 전체 경로를 사용하여 라이브러리를 지정하는 것이 적절하지 않음을 의미합니다. 배포시 구축 된 앱 및 관련 라이브러리는 표준 검색 가능 위치에 설치됩니다.
의미는 접미사를보고 라이브러리입니까? – peterk
@peterk : 아니요, 유닉스는 보통 파일로 충분하지 않습니다. 파일 구조를보고 라이브러리인지 확인합니다. –
@MartinBonner GCC는 해당 스텁'.a' 파일을 자동으로 차례로 검색하지 않겠습니까? – user0042