.so 파일 이름에 추가 'U'를 추가하는 libtool
문제
저는 autotools로 구축된 프로젝트를 두 개의 폴더로 나누어 가지고 있습니다.첫번째, lib, 일부 라이브러리를 생성하고 두 번째 라이브러리는 도구, 그들에 대한 링크.
다시 연결하는 동안 libtool이 라이브러리 이름을 다음과 같이 바꾸므로 빌드가 실패합니다.
mylib.1.0.0 -> mylib.1.0.0U
이름 변경이 발생한 후에는 이전 이름이 복원되지 않으며 새 이름도 복원되지 않습니다. mylib.1.0.0 생성되었으므로 다음과 같은 심볼릭 링크가 생성됩니다. mylib 추가 항목 없이 이름을 가리킵니다. 유 연결이 실패합니다.
이것을 피할 수 있는 방법이 있나요?아니면 다시 연결하는 것을 전혀 피하기 위해서일까요?저는 libtool 버전 1.5.6을 사용하고 있습니다.
해결책
분명히 얻은 것 같은데...
문제는 다음 구조로 쉽게 재현 가능합니다.
- ㅏ lib 폴더, 건물:
- 리바
- libb, 에 따라 리바
- ㅏ 소스 폴더, 건물 음식물, libb를 연결함
그런 다음 lib/Makefile.am에서 이를 지정해야 합니다.
lib_LTLIBRARIES = \
libb.la \
liba.la
이 시점에서 liba.so.1.0.0U 파일이 생성됩니다.대신 지정(라이브러리 순서가 변경됨에 유의)
lib_LTLIBRARIES = \
liba.la \
libb.la
빌드가 잘 작동합니다.
나는 어떤 경우든 올바른 순서로 항목을 지정하는 것이 최선이라는 점에 동의합니다.아직 나에게 불분명한 것은 이것이 libtool 버그인지 아닌지입니다.
제휴하지 않습니다 StackOverflow