错误提示:
libtool: compile: unable to infer tagged configuration
libtool: compile: specify a tag with`--tag'
==============================================
错误原因:由于libtool版本过低导致的
解决思路:
1、正面迎敌:在现有版本上手动修改相关源码,让bug消失
这是勇者的手段:成功了,即便得不到鲜花和掌声但自己就是自己心中的英雄,即便死的很惨,但无怨无悔依然相信自己就是那个胜者
好处:对自己分析解决问题的能力是一个很好的提升
缺点:耗费过多时间,而且不一定能做出结果
(下面给出笔者正在努力养成的方法)
思考:根据错误提示,在源码中对其定位,然后对相关部分代码进行研究,弄懂其作用,然后怎么实现的。记住遇到问题首先是思考。
查找:google&百度中搜索相关错误,因为这些问题很可能之前都有人遇到过,如果能找到解决方案最好,不过不一定每个问题都能找到。所以最关键的是我们借别人的力,减少自己摸索的时间,更快更准地从整体上把握问题定位问题,从而找出自己的解决方案。
思考-查找-思考-查找 and so on
2、侧面绕过:重新下载新版本等,绕过这个bug
这是智者的方法:解决问题是一种能力,如何从一开始就不让问题出现更是一种能力,面对问题我们不一定都需要迎难而上,得看值不值得,有时候巧妙的避免它更是一种智慧
好处:能够避免很多不必要的问题出现,让我们腾出更多的精力到更重要的事情上去
不好:新的尝试,稍微偏离了之前的计划,可能会遇到一些新的问题,如果不能随机应变,遇到问题不能静下来分析,很容易让我们乱了阵脚导致信心丧失
(针对本次移植给出一个验证通过的解决方案:)
重新下载新版本的libtool以默认方式安装(http://ftp.gnu.org/gnu/libtool/),执行以下命令:
./configure
make
make install
## 然后进入jpeg-6b的源码目录,从libtool源码中复制下面两个文件到jpeg-6b目录
cp ../libtool-2.2.10/libltdl/config/config.sub .
cp ../libtool-2.2.10/libltdl/config/config.guess .
./configure CC=arm-xilinx-linux-gnueabi-gcc --host=arm-unknown-linux --prefix=/usr/local/jpeg-6b --enable-static --enable-shared
## 将安装好的libtool建个链接到当前目录
(或者修改jpeg-6b下Makefile,其中指定了libtool的所在路径为 ./libtool将其改为实际路径,笔者的是/usr/local/bin/libtool)
ln -s /usr/local/bin/libtool ./libtool
make
# 建立安装目录所需子目录,否则安装时会报错,找不到这些路径,(这些路径在configure时被指定)
mkdir -p /usr/local/jpeg-6b /usr/local/jpeg-6b/bin /usr/local/jpeg-6b/lib /usr/local/jpeg-6b/include /usr/local/jpeg-6b/man/man1
sudo make install
个人总结
解决问题需要我们智勇双全。勇中有谋,迎难而上时要懂得通过借力而减少自己摸索的时间,从而更快定位问题;谋中有勇,侧面绕过时遇到新的问题也需要我们沉下心来去分析解决它,最终解决它。
一些思考
我们一直强调分析解决问题的能力,不错,分析解决问题的能力是根本,遇到问题要懂得沉下心来分析思考,但往往忽视了另一种能力:从一开始就将问题避免的能力。分析解决问题是一种能力,在没有开始之前就将问题避免更是一种能力。
但对于一个初学者来说,我们有很多东西不理解,正是在应对一个个问题中我们对所面对的事物本身有了更深刻和正确的理解,我们才得到了成长。如果从一开始就选择一条问题更少的路,或许我们会走得更快,但是我们却少了更深入理解我们所面对的事物的机会。但走上一条问题更多的路,或许就意味着我们很难在“被要求”的时间内做出一个结果,没有结果便意味着我们的努力并不会受到别人的认可,就算我们对一些东西得再好有什么用?