当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求助:有没有指导如何看懂G++编译错误信息的地方?
帖子发表于 : 2009-09-19 21:58 

注册: 2009-08-16 22:53
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
小的是Linux新人,遇到G++的编译错误信息,简直两眼一抹黑,没有没哪里做这方面的指导的?网页或者链接给一个吧?

我遇到的编译错误比较多,但是都是类似这样的:
main.o: In function `std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
main.cpp:(.text+0x65): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const

首先,这里什么地方指出了出现错误的行号呢?0x65应该不是行号
其次,这个意思应该是说,函数std::string::operator[](unsigned long) const没有定义吧,可能是某函数要求的参数是const std::string,但是在里面又调用了那个字符串的[]方法。这个理解应该没错吧?请各位不吝指点

关键我就是找不到那个地方出现了这样的问题。。。
:em20


最后由 chenchi 编辑于 2009-09-19 22:03,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求助:有没有指导如何看懂G++编译错误信息的地方?
帖子发表于 : 2009-09-19 22:01 
头像

注册: 2008-12-13 19:39
帖子: 13284
地址: 物华天宝人杰地灵
送出感谢: 1
接收感谢: 6
要E文好,直接看GNU的GCC和GDB的帮助。这方面中文资料不多,恶补E文和C++编程基础知识吧。 :em20


_________________
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求助:有没有指导如何看懂G++编译错误信息的地方?
帖子发表于 : 2009-09-19 22:05 

注册: 2009-08-16 22:53
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
wangdu2002 写道:
要E文好,直接看GNU的GCC和GDB的帮助。这方面中文资料不多,恶补E文和C++编程基础知识吧。 :em20


谢,你说的帮助,是那个man出来的吗?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求助:有没有指导如何看懂G++编译错误信息的地方?
帖子发表于 : 2009-09-19 22:50 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
这个是说那个函数找不到定义。#include <string> 看看


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求助:有没有指导如何看懂G++编译错误信息的地方?
帖子发表于 : 2009-09-19 22:51 
头像

注册: 2008-12-13 19:39
帖子: 13284
地址: 物华天宝人杰地灵
送出感谢: 1
接收感谢: 6
某是菜鸟,NN年前看过一本Basic编程。 :em03
楼主多请教楼上的大美女蛇,她对编程比较熟。 :em06


_________________
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求助:有没有指导如何看懂G++编译错误信息的地方?
帖子发表于 : 2009-09-20 8:40 

注册: 2009-08-16 22:53
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
谢谢两位~
代码里已经引入了<string>,就只有和string无关的错误了,应该是链接库还有问题:
./lib/lm.a(NgramLM.o): In function `Ngram::Ngram(Vocab&, unsigned int)':
NgramLM.cpp:(.text+0x265): undefined reference to `LM::LM(Vocab&)'
NgramLM.cpp:(.text+0x33e): undefined reference to `LM::~LM()'

这个应该是代码的库的问题,和代码无关了.就是想请教一下:(.text+0x33e)是什么意思啊?
还有上面的main.cpp:(.text+0x65),(.text+0x65)是什么意思啊?


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 求助:有没有指导如何看懂G++编译错误信息的地方?
帖子发表于 : 2009-09-21 21:49 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
chenchi 写道:
谢谢两位~
代码里已经引入了<string>,就只有和string无关的错误了,应该是链接库还有问题:
./lib/lm.a(NgramLM.o): In function `Ngram::Ngram(Vocab&, unsigned int)':
NgramLM.cpp:(.text+0x265): undefined reference to `LM::LM(Vocab&)'
NgramLM.cpp:(.text+0x33e): undefined reference to `LM::~LM()'

这个应该是代码的库的问题,和代码无关了.就是想请教一下:(.text+0x33e)是什么意思啊?
还有上面的main.cpp:(.text+0x65),(.text+0x65)是什么意思啊?


undefined reference 就是链接时找不到函数实体
LM 类在哪? ...


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 求助:有没有指导如何看懂G++编译错误信息的地方?
帖子发表于 : 2009-09-21 22:28 

注册: 2006-09-11 22:47
帖子: 2841
送出感谢: 0 次
接收感谢: 4
编译错误是基于源代码的,定位单位是行号。
连接错误是基于目标代码的,定位单位对一般人来说没意义。你不可能找到行号。

一般来说,相关的错误还是你的程序问题,只不过这类问题只有凭你自己的经验去解决。

如果程序编译出现你所列举的这几个问题,在VC++2005里面编译一样会出问题,也一样不会报出行号,与Linux没半点关系。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译