Chinaunix首页 | 论坛 | 博客
  • 博客访问: 135409
  • 博文数量: 20
  • 博客积分: 551
  • 博客等级: 下士
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-28 15:55
文章分类

全部博文(20)

文章存档

2012年(12)

2011年(8)

分类: C/C++

2011-12-20 11:24:21

今天在编译的时候遇到如下问题:
libtool --quiet --mode=compile gcc -c  -O -g -Wall -pipe -I. -I/usr/src/linux/in clude -I/usr/src/linux-2.2/include -I /usr/src/linux-2.0/include -DVERSION=\"3.2 .1\" -DDEFAULT_PROXY_NAME=\"/etc/apmd_proxy\" apmlib.c
libtool --quiet --mode=link gcc -o libapm.la apmlib.lo -rpath /usr/lib -version- info 1:0
g++: /usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crti.o: No such file or directory
g++: /usr/lib/gcc/i686-linux-gnu/4.4.5/crtbeginS.o: No such file or directory
g++: /usr/lib/gcc/i686-linux-gnu/4.4.5/crtendS.o: No such file or directory
g++: /usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crtn.o: No such file or directory
make: *** [libServer.la] Error 1
 
经过了高人的指导终于找出了问题所在;简单总结出以下办法解决此问题:
在遇到此问题时最简洁的方法就是先去查看版本号,先用命令:locate crtbeginS查看crtbeginS
的路径是否在与/usr/lib/gcc/i686-linux-gnu/4.4.5/crtbeginS的路径相同;如果不同那就是很有可能是版本引起的问题
如果相同那么在一同样的方法查看crti.o、crtendS.o  、ctrn.o的路径与版本进行比较,找出其中问题之所在;这种
错误时出现情况:如果在一台机子上编译,而后scp -r address:/file path 拷贝到了另外的一台机子上最修改
而后编译(make)可能是编译器的版本的不同而出现找不到库文件的情况。如果已经知道是版本的问题了那就好办了
找到你在用的本台机子的makemodule.sh的位置去进行编译就OK了;一般在/root/build/目录下(仅供参考)执行
~/build/makemodule.sh -C . -b Version Number 对于各个选项什么意思那就劳烦您自己动手去查man手册啦。
阅读(3711) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~