libtool 아키텍처의 특별한 점은 무엇입니까?

libtool 아키텍처의 특별한 점은 무엇입니까?

Fedora는 libtool64비트로 패키지되어 있습니다.

# rpm -qi libtool |grep ^Arch
Architecture: x86_64

그러나 패키지 내용을 피상적으로 살펴보면 명확한 Arch 관련 바이너리가 드러나지 않습니다.

# rpm -ql libtool |xargs file
/usr/bin/libtool:                          a /usr/bin/sh script, ASCII text executable, with very long lines, with escape sequences
/usr/bin/libtoolize:                       a /usr/bin/sh script, ASCII text executable, with very long lines, with escape sequences
/usr/share/aclocal/libtool.m4:             M4 macro processor script, ASCII text, with very long lines
/usr/share/aclocal/ltargz.m4:              M4 macro processor script, ASCII text
/usr/share/aclocal/ltdl.m4:                M4 macro processor script, ASCII text
/usr/share/aclocal/ltoptions.m4:           M4 macro processor script, ASCII text
/usr/share/aclocal/ltsugar.m4:             M4 macro processor script, ASCII text
/usr/share/aclocal/ltversion.m4:           M4 macro processor script, ASCII text
/usr/share/aclocal/lt~obsolete.m4:         M4 macro processor script, ASCII text
/usr/share/doc/libtool:                    directory
/usr/share/doc/libtool/AUTHORS:            ASCII text
/usr/share/doc/libtool/ChangeLog:          Non-ISO extended-ASCII text, with LF, NEL line terminators
/usr/share/doc/libtool/NEWS:               ASCII text
/usr/share/doc/libtool/README:             ASCII text
/usr/share/doc/libtool/THANKS:             UTF-8 Unicode text
/usr/share/doc/libtool/TODO:               ReStructuredText file, UTF-8 Unicode text
/usr/share/info/libtool.info-1.gz:         gzip compressed data, max compression, from Unix, original size modulo 2^32 312124
/usr/share/info/libtool.info-2.gz:         gzip compressed data, max compression, from Unix, original size modulo 2^32 51735
/usr/share/info/libtool.info.gz:           gzip compressed data, max compression, from Unix, original size modulo 2^32 4355
/usr/share/libtool:                        directory
/usr/share/libtool/build-aux:              directory
/usr/share/libtool/build-aux/compile:      a /usr/bin/sh script, ASCII text executable
/usr/share/libtool/build-aux/config.guess: a /usr/bin/sh script, ASCII text executable
/usr/share/libtool/build-aux/config.sub:   a /usr/bin/sh script, ASCII text executable
/usr/share/libtool/build-aux/depcomp:      a /usr/bin/sh script, ASCII text executable
/usr/share/libtool/build-aux/install-sh:   a /usr/bin/sh script, ASCII text executable
/usr/share/libtool/build-aux/ltmain.sh:    POSIX shell script, ASCII text executable, with escape sequences
/usr/share/libtool/build-aux/missing:      a /usr/bin/sh script, ASCII text executable
/usr/share/licenses/libtool:               directory
/usr/share/licenses/libtool/COPYING:       ASCII text
/usr/share/man/man1/libtool.1.gz:          gzip compressed data, max compression, from Unix, original size modulo 2^32 3469
/usr/share/man/man1/libtoolize.1.gz:       gzip compressed data, max compression, from Unix, original size modulo 2^32 3027

이는 몇 가지 질문을 제기합니다.

아키텍처 관련 부분은 어디에 있나요? 이러한 매크로 파일에 일부 컴파일 시간 상수가 포함되어 있습니까? 실수로 libtool을 32비트로 패키징하면 noarch64비트 버전이 중단됩니까?

답변1

스크립트 libtool자체에는 기본 호스트 및 빌드 아키텍처가 포함되어 있으므로 빌드되는 아키텍처마다 다릅니다.

libtool아키텍처와 관련된 최소한 두 가지 다른 변수가 있습니다 .

  • 도서관 검색 경로;
  • 링커 명령(대상 형식을 지정함)

나머지는 libtool아키텍처 독립적이며 일부 다른 배포판에서는 스크립트만 포함하는 아키텍처 종속 패키지 libtool와 다른 모든 것을 포함하는 아키텍처 독립적 패키지를 제공할 수 있도록 패키지를 분할합니다.

오류를 사용하면 libtool영향을 받는 변수에 대해 올바른 값을 제공하지 않는 한 빌드가 실제로 중단될 수 있습니다(올바른 라이브러리를 찾지 못하고 연결이 실패함).

관련 정보