libtool : X--tag=CC: command not found 编译报错

本文解决了一个在使用GCC编译代码时遇到的libtool错误问题,包括错误代码解析、问题原因分析以及解决方案,如直接复制系统自带libtool、修改aclocal.m4文件或替换libtool脚本中的变量。

GCC编译代码时,执行./configure在代码目录下生成了libtool脚本,再执行make 出现类似以下错误

 http://blog.youkuaiyun.com/eqera/article/details/7658031

 

Error代码   收藏代码
  1. ../libtool: line 832: X--tag=CC: command not found  
  2. ../libtool: line 865: libtool: ignoring unknown tag : command not found  
  3. ../libtool: line 832: X--mode=compile: command not found  
  4. ../libtool: line 998: *** Warning: inferring the mode of operation is deprecated.: command not found  
  5. ../libtool: line 999: *** Future versions of Libtool will require --mode=MODE be specified.: command not found  
  6. ../libtool: line 1142: Xgcc: command not found  
  7. ../libtool: line 1142: X-DHAVE_CONFIG_H: command not found  
  8. ../libtool: line 1142: X-I.: command not found  
  9. ../libtool: line 1142: X-I../include: No such file or directory  
  10. ../libtool: line 1142: X-g: command not found  
  11. ../libtool: line 1142: X-I/usr/local/include: No such file or directory  
  12. ../libtool: line 1142: X-g: command not found  
  13. ../libtool: line 1142: X-O2: command not found  
  14. ../libtool: line 1142: X-MT: command not found  
  15. ../libtool: line 1142: Xargs.lo: command not found  
  16. ../libtool: line 1142: X-MD: command not found  
  17. ../libtool: line 1142: X-MP: command not found  
  18. ../libtool: line 1142: X-MF: command not found  
  19. ../libtool: line 1142: X.deps/args.Tpo: No such file or directory  
  20. ../libtool: line 1142: X-c: command not found  
  21. ../libtool: line 1193: Xargs.lo: command not found  
  22. ../libtool: line 1198: libtool: compile: cannot determine name of library object from `': command not found  

 

原因据说是因为在项目目录下生成的libtool脚本中定义了$ECHO变量,但是在脚本文件ltmain.sh中,使用的却是$echo(生成的libtool版本太旧)

打开aclocal.m4文件,可以在很前面的一段配置中找到这么两句

 

Config代码   收藏代码
  1. # This can be used to rebuild libtool when needed  
  2. LIBTOOL_DEPS="$ltmain"  
  3.   
  4. # Always use our own libtool.  
  5. LIBTOOL='$(SHELL) $(top_builddir)/libtool'  
  6. AC_SUBST(LIBTOOL)dnl  
 

 

可通过以下方法解决:

1. 直接复制系统自带的libtool到项目目录,应该在/usr/bin目录下,覆盖代码文件目录下的libtool,再执行make

(没装就apt-get install libtool 或者 yum install libtool 安装一下吧)

2.  修改aclocal.m4文件,将上面的LIBTOOL='$(SHELL) $(top_builddir)/libtool'改成LIBTOOL='$(SHELL)  /usr/bin/libtool'后重新执行./configure

3. 将源码目录下libtool脚本中所有的$ECHO替换成$echo. 或者将脚本文件ltmain.sh里的$echo替换成$ECHO,都一样,重新执行./configure


另一种解决方案

 export echo=echo  回车后 make  正常

为啥输出如下报错 MACHINE = arm-ca9-linux-uclibcgnueabihf /bin/sh ../../libtool --tag=CC --mode=compile arm-ca9-linux-uclibcgnueabihf-gcc -DHAVE_CONFIG_H -I. -I../.. -I. -I.. -I../JudyCommon/ -I/home/lgb/sharedfile/ipc/platform/nvmp/staging_dir/target-arm-ca9-linux-uclibcgnueabihf-cx85v1/usr/include -I/home/lgb/sharedfile/ipc/platform/nvmp/staging_dir/target-arm-ca9-linux-uclibcgnueabihf-cx85v1/include -I/home/lgb/sharedfile/ipc/platform/nvmp/../sdk/soc/nvt9856x/uclibc-toolchain-1.0.32/arm-ca9-linux-uclibcgnueabihf-8.4.01/arm-ca9-linux-uclibcgnueabihf/sysroot/usr/include -DJUDYL -O2 -pipe -fgnu89-inline -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard -ftree-vectorize -fno-builtin -fno-common -g -Wno-stringop-truncation -Wno-format-truncation -Wno-sizeof-pointer-div -Wno-stringop-overflow -Wno-format-overflow -Wno-sizeof-pointer-memaccess -g -UJU_64BIT -c -o JudyLCount.lo JudyLCount.c make[6]: MACHINE: Command not found 我的makefile.am如下 JudyLTables.c: JudyLTablesGen.c MACHINE = $(shell $(CC) -dumpmachine) echo "MACHINE = $(MACHINE)" if [[ "$machine" == *aarch64* ]] || [[ "$machine" == *arm64* ]] || [[ "$machine" == *64* ]]; then echo "检测到目标关键词 (aarch64/arm64/64)" else echo "未检测到目标关键词" fi gcc $(INCLUDES) $(AM_CFLAGS) -O2 -pipe -fgnu89-inline -ftree-vectorize -fno-builtin -fno-common -g -Wno-stringop-truncation -Wno-format-truncation -Wno-sizeof-pointer-div -Wno-stringop-overflow -Wno-format-overflow -Wno-sizeof-pointer-memaccess -g $(ARCH_DEFINE) -o JudyLTablesGen JudyLTablesGen.c; ./JudyLTablesGen
最新发布
01-01
sudo make install Making install in libfcgi make[1]: Entering directory '/home/yk/fcgi-2.4.1-SNAP-0910052249/libfcgi' make[2]: Entering directory '/home/yk/fcgi-2.4.1-SNAP-0910052249/libfcgi' test -z "/home/yk/fcgi/lib" || mkdir -p -- "/home/yk/fcgi/lib" /bin/bash ../libtool --mode=install /usr/bin/install -c 'libfcgi.la' '/home/yk/fcgi/lib/libfcgi.la' /usr/bin/install -c .libs/libfcgi.so.0.0.0 /home/yk/fcgi/lib/libfcgi.so.0.0.0 (cd /home/yk/fcgi/lib && { ln -s -f libfcgi.so.0.0.0 libfcgi.so.0 || { rm -f libfcgi.so.0 && ln -s libfcgi.so.0.0.0 libfcgi.so.0; }; }) (cd /home/yk/fcgi/lib && { ln -s -f libfcgi.so.0.0.0 libfcgi.so || { rm -f libfcgi.so && ln -s libfcgi.so.0.0.0 libfcgi.so; }; }) /usr/bin/install -c .libs/libfcgi.lai /home/yk/fcgi/lib/libfcgi.la /usr/bin/install -c .libs/libfcgi.a /home/yk/fcgi/lib/libfcgi.a chmod 644 /home/yk/fcgi/lib/libfcgi.a arm-xilinx-linux-gnueabi-ranlib /home/yk/fcgi/lib/libfcgi.a ../libtool: line 6556: arm-xilinx-linux-gnueabi-ranlib: command not found /bin/bash ../libtool --mode=install /usr/bin/install -c 'libfcgi++.la' '/home/yk/fcgi/lib/libfcgi++.la' libtool: install: warning: relinking `libfcgi++.la' (cd /home/yk/fcgi-2.4.1-SNAP-0910052249/libfcgi; /bin/bash ../libtool --tag=CXX --mode=relink arm-xilinx-linux-gnueabi-g++ -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi -O2 -pipe -g -feliminate-unused-debug-types -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o libfcgi++.la -lfcgi -rpath /home/yk/fcgi/lib fcgio.lo ) arm-xilinx-linux-gnueabi-g++ -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi -shared -nostdlib /home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib/crti.o /home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib/arm-xilinx-linux-gnueabi/8.2.0/crtbeginS.o .libs/fcgio.o -Wl,--rpath -Wl,/home/yk/fcgi/lib -L/home/yk/fcgi/lib -lfcgi -L/home/yk/sdk/sysroots/x86_64-petalinux-linux/usr/lib/arm-xilinx-linux-gnueabi/gcc/arm-xilinx-linux-gnueabi/8.2.0 -L/home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/lib -L/home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib/arm-xilinx-linux-gnueabi/8.2.0 -L/home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib -lstdc++ -lm -lc -lgcc_s /home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib/arm-xilinx-linux-gnueabi/8.2.0/crtendS.o /home/yk/sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/lib/crtn.o -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-soname -Wl,libfcgi++.so.0 -o .libs/libfcgi++.so.0.0.0 ../libtool: line 4501: arm-xilinx-linux-gnueabi-g++: command not found libtool: install: error: relink `libfcgi++.la' with the above command before installing it Makefile:256: recipe for target 'install-libLTLIBRARIES' failed make[2]: *** [install-libLTLIBRARIES] Error 1 make[2]: Leaving directory '/home/yk/fcgi-2.4.1-SNAP-0910052249/libfcgi' Makefile:459: recipe for target 'install-am' failed make[1]: *** [install-am] Error 2 make[1]: Leaving directory '/home/yk/fcgi-2.4.1-SNAP-0910052249/libfcgi' Makefile:373: recipe for target 'install-recursive' failed make: *** [install-recursive] Error 1
07-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值