Chinaunix首页 | 论坛 | 博客
  • 博客访问: 116453
  • 博文数量: 83
  • 博客积分: 2531
  • 博客等级: 少校
  • 技术积分: 865
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-31 20:40
文章分类

全部博文(83)

文章存档

2011年(7)

2010年(76)

我的朋友

分类: C/C++

2010-04-21 15:59:28

1、expected unqualified-id before '''

引起该错误是因为:类或结构体的声明结尾“}”的后面没有分号。

还可能导致一个错误:一个声明指定了多个类型

解决办法:分别检查包含进来的文件,类声明,结构体声明后面有没有加分号。

2、expected initializer before '<' token

 typedef void (*loader_function)(stream* input,int tag_type);
 static hash_map tag_loaders;

这是在使用hash_map等这些标准库容器时,编译器没有找到hash_map类型和相应的名字空间

3、undefined reference to `__gxx_personality_v0`

这是用gcc来编译*.cpp文件而引起的

解决方法:一 在用gcc编译时添加 -lstdc++ 选项

         二使用g++编译

gcc默认*.cxx文件为c++文件 以下内容引用自gcc使用手册:

C和C++编译器是集成的.他们都要用四个步骤中的一个或多个处理输入文件: 预处理(preprocessing),编译(compilation),汇编(assembly)和连接(linking).源文件后缀名标识源文件的 语言,但是对编译器来说,后缀名控制着缺省设定:
gcc
认为预处理后的文件(.i)是C文件,并且设定C形式的连接.
g++
认为预处理后的文件(.i)是C++文件,并且设定C++形式的连接.
源文件后缀名指出语言种类以及后期的操作:
.c C源程序;预处理,编译,汇编
.C C++源程序;预处理,编译,汇编
.cc C++源程序;预处理,编译,汇编
.cxx C++源程序;预处理,编译,汇编
.m Objective-C源程序;预处理,编译,汇编
.i 预处理后的C文件;编译,汇编
.ii 预处理后的C++文件;编译,汇编
.s 汇编语言源程序;汇编
.S 汇编语言源程序;预处理,汇编
.h 预处理器文件;通常不出现在命令行上

其他后缀名的文件被传递给连接器(linker).通常包括:
.o 目标文件(Object file)
.a 归档库文件(Archive file)

阅读(2930) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~