문제

저는 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 버그인지 아닌지입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top