접두사 경로에 루트 권한 없이 autoreconf를 사용하면 구성 스크립트가 손상됩니다.

접두사 경로에 루트 권한 없이 autoreconf를 사용하면 구성 스크립트가 손상됩니다.

sed패키지(libdrm-2.4.59)를 컴파일하고 종속성을 사용 및 제거 하려고 합니다 autoreconf.

sed -e "/pthread-stubs/d" -i configure.ac &&
autoreconf -fiv

다음과 같은 출력이 생성됩니다.

autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I /u/f0/students/estermad/tmp/share/aclocal --force -I m4 ${ACLOCAL_FLAGS}
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --install --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/config.guess'
libtoolize: copying file 'build-aux/config.sub'
libtoolize: copying file 'build-aux/install-sh'
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: You should add the contents of 'm4/libtool.m4' to 'aclocal.m4'.
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: You should add the contents of 'm4/ltoptions.m4' to 'aclocal.m4'.
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: You should add the contents of 'm4/ltsugar.m4' to 'aclocal.m4'.
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: You should add the contents of 'm4/lt~obsolete.m4' to 'aclocal.m4'.
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:32: installing `build-aux/missing'
exynos/Makefile.am: installing `build-aux/depcomp'
autoreconf: Leaving directory `.'

지금까지는 괜찮아 보이지만 앞서 말했듯이 configure이상한 오류로 인해 빌드가 중지됩니다.

...
checking for pkg-config... /u/f0/students/estermad/tmp/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for PCIACCESS... configure: error: in `/u/f0/students/estermad/xc/libdrm-2.4.59':
configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
...

다음은 오류, 올바르게 설정된 해당 컴파일러 및 링커 플래그, config.log설정되지 않은 관련 값을 보여주는 부분 섹션입니다.pkg-config

configure:12927: checking for PCIACCESS
configure:12932: $PKG_CONFIG --exists --print-errors "pciaccess >= 0.10"
configure:12935: $? = 0
configure:12945: $PKG_CONFIG --exists --print-errors "pciaccess >= 0.10"
configure:12948: $? = 0
configure:12970: error: in `/u/f0/students/estermad/xc/libdrm-2.4.59':
...
ac_cv_env_PCIACCESS_CFLAGS_set=set
ac_cv_env_PCIACCESS_CFLAGS_value=-I/u/f0/students/estermad/tmp/include
ac_cv_env_PCIACCESS_LIBS_set=set
ac_cv_env_PCIACCESS_LIBS_value='-L/u/f0/students/estermad/tmp/lib -lpciaccess'
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=

이러한 용도가 내 시스템에 없기 autoreconf때문에 직접 구축해야 합니다. 이 시스템에서 수행하는 모든 빌드에는 접두사가 있습니다. 다른 항목 간의 종속성을 구축하는 데 사용되는 접두사입니다. 왜냐하면 내가 다음을 실행했기 때문입니다.libtoolizelibtoollibdrmlibtool

$ cd libtool-2.4.5
$ ./configure --prefix=/u/f0/students/estermad/tmp && make && make install
$ libtool --finish /u/f0/students/estermad/tmp/lib

그러나 libtool의 빌드 및 설치는 오류 없이 실행되었습니다. 생성된 configure스크립트가 손상되었는지 autoreconf(/usr/bin/autoreconf에 위치), libtoolize(/u/f0/students/estermad/tmp/bin에 위치) aclocal또는 기타 이유로 인해 알 수 없습니다 .

수동 주석을 libdrm사용하지 않고 빌드 하려고 합니다 . 빌드가 잘 실행됩니다. 따라서 위의 문제는 를 실행한 후에만 분명해집니다 . 몇 가지 유용한 팁을 알려주시면 정말 감사하겠습니다.autoreconfpthread-stubsautoreconf

답변1

해결책은 pkg-config를 최신 버전(현재 0.28)으로 업데이트하는 것입니다. 0.18이 있어요.

관련 정보