Fedora는 libtool
64비트로 패키지되어 있습니다.
# 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비트로 패키징하면 noarch
64비트 버전이 중단됩니까?
답변1
스크립트 libtool
자체에는 기본 호스트 및 빌드 아키텍처가 포함되어 있으므로 빌드되는 아키텍처마다 다릅니다.
libtool
아키텍처와 관련된 최소한 두 가지 다른 변수가 있습니다 .
- 도서관 검색 경로;
- 링커 명령(대상 형식을 지정함)
나머지는 libtool
아키텍처 독립적이며 일부 다른 배포판에서는 스크립트만 포함하는 아키텍처 종속 패키지 libtool
와 다른 모든 것을 포함하는 아키텍처 독립적 패키지를 제공할 수 있도록 패키지를 분할합니다.
오류를 사용하면 libtool
영향을 받는 변수에 대해 올바른 값을 제공하지 않는 한 빌드가 실제로 중단될 수 있습니다(올바른 라이브러리를 찾지 못하고 연결이 실패함).