溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CC_FOR_BUILD 宏定義問題

發(fā)布時(shí)間:2020-07-05 17:55:30 來源:網(wǎng)絡(luò) 閱讀:466 作者:fengyuzaitu 欄目:軟件技術(shù)

說明

????????編譯indent-2.2.12出錯(cuò)

/indent-2.2.12/man'
o texinfo2man ./texinfo2man.c
make[2]: o: Command not found
make[2]: [Makefile:546: texinfo2man] Error 127 (ignored)
./texinfo2man ./indent.1.in ./../doc/indent.texi > indent.1
/bin/sh: ./texinfo2man: No such file or directory
make[2]: *** [Makefile:549: indent.1] Error 127
make[2]: Leaving directory '/3thrdparty/indent-2.2.12/man'
make[1]: *** [Makefile:455: all-recursive] Error 1
make[1]: Leaving directory '/3thrdparty/indent-2.2.12'
make: *** [Makefile:393: all] Error 2


排查man/Makefile編譯文件

$(CC_FOR_BUILD) -o $@ ${srcdir}/texinfo2man.c

無法識(shí)別CC_FOR_BUILD

解決該問題,可以通過修改宏定義

$(CC) -o $@ ${srcdir}/texinfo2man.c


引申

autoconf cached variables (CC_FOR_BUILD),搜索autoconf腳本沒有搜索到任何的信息


文件夾目錄下config/config.guess中對(duì)CC_FOR_BUILD進(jìn)行了詳細(xì)的說明

# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.

# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.


在其他的開源中定義了該宏定義

secp256k1/build-aux/m4/ax_prog_cc_for_build.m4

This macro searches for a C compiler that generates native executables,
#?? that is a C compiler that surely is not a cross-compiler. This can be
#?? useful if you have to generate source code at compile-time like for
#?? example GCC does.
#
#?? The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything
#?? needed to compile or link (CC_FOR_BUILD) and preprocess (CPP_FOR_BUILD).
#?? The value of these variables can be overridden by the user by specifying
#?? a compiler with an environment variable (like you do for standard CC).



config.guess這里對(duì)宏定義進(jìn)行了賦值

set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
?{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
?{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
?{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
?{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
?,,)??? echo "int x;" > $dummy.c ;
?for c in cc gcc c89 c99 ; do
?? if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
????? CC_FOR_BUILD="$c"; break ;
?? fi ;
?done ;
?if test x"$CC_FOR_BUILD" = x ; then
?? CC_FOR_BUILD=no_compiler_found ;
?fi
?;;
?,,*)?? CC_FOR_BUILD=$CC ;;
?,*,*)? CC_FOR_BUILD=$HOST_CC ;;
esac ; set_cc_for_build= ;'




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI