`

经典的排错过程 expected unqualified-id before string constant

阅读更多

答案是:我的代码少了一个 “;”
=====================================
现场:

回到 报错的那一行,发现没有问题。

报错的文件:ptlogin2_api.h(22行):expected unqualified-id before string constant

在我的一个cpp的 代码中间(绝对不是在头文件),使用了这个文件 ptlogin2_api.h 里面的 一个函数 xxx,

#ifdef __cplusplus
extern "C" {================>报错的哪一行
#endif

结果发现那里错了呢?

我所包含的 离 ptlogin2_api.h 最近的一个包含文件
#include "dev_db_def.h"===================》里面出了问题!枚举值定义最后少了“;”。
#include "ptlogin_app_id.h"
#include "panel_auth.h"

==========================================
其实有多个方案可以发现这个问题
1)把新加的代码全部去掉,包括头文件,确保自己的代码可以编译通过。(其实这样就可以发现时自己的问题了)
2)既然报错的地方没问题,代码附近的问题,或者是附近别的文件的问题。经常出现这样的情况,一个文件里面最后少了 “;”,在另一个文件里面报错。(通过这个方法有可能发现问题)
3)vi dev_insert.o 将代码展开,查看编译器最终编译代码时,的文件状态,这个方法是万能的。但也最复杂。

我的 dev_insert.o 展开如下:

  45053 # 42 "../comm/dev_db_def.h"
  45054 enum _ErrorCodeForeground
  45055 {
  45056  DR_ERR_OK = 0,
  45057  DR_ERR_PARAMS_VALIDITY = 1000,
  45058  DR_ERR_LOGIN_STATE,
  45059  DR_ERR_INSERT_DEV,
  45060  DR_ERR_SELECT_DEV,
  45061  DR_ERR_UPDATE_DEV,
  45062  DR_ERR_ACTION_TYPE,
  45063
  45064 }

  45065 # 15 "dev_insert.cpp" 2
  45066 # 1 "/data/home/nemo/code/isd_qzoneappbase_proj/base_class/base_lib/include/ptlogin_app_id.h" 1
  45067 # 16 "dev_insert.cpp" 2
  45068 # 1 "/data/home/nemo/code/isd_qzoneappbase_proj/outerlib/panel_auth/include/panel_auth.h" 1
  45069 
  45070 
  45071 
  45072 # 1 "/data/home/nemo/code/isd_qzoneappbase_proj/base_class/extern_libs/tdev/include/toiw_all.h" 1
  45073 # 5 "/data/home/nemo/code/isd_qzoneappbase_proj/outerlib/panel_auth/include/panel_auth.h" 2
  45074 # 1 "/data/home/nemo/code/isd_qzoneappbase_proj/base_class/extern_libs/tbase/include/tbase_all.h" 1
  45075 # 6 "/data/home/nemo/code/isd_qzoneappbase_proj/outerlib/panel_auth/include/panel_auth.h" 2
  45076 # 1 "/data/home/nemo/code/isd_qzoneappbase_proj/outerlib/panel_auth/include/ptlogin2_api.h" 1
  45077 # 25 "/data/home/nemo/code/isd_qzoneappbase_proj/outerlib/panel_auth/include/ptlogin2_api.h"
  45078 extern "C"{

  45079


====================================
详细的排错过程可以参考 邮箱里面的 一个文档 以gcc搜索关键字 排错即可。

====================================
gcc的常见报错error,通常是因为少了 ; 号

expected unqualified-id before ****
一般出现如下的提示信息都是是好了 分号‘;’,从报错的地方往上找,看看上面包含的头文件的结尾 类定义、枚举定义的最后是否 少了 分号。

error : multiple types in one declaration
一般因为,一个文件里面定义了两个class,其中前面的class 没有;号,在第二个class最后报错.

=====================================
类型重定义 链接失败,如果找不到代码的原因,有可能是makefile文件写的有问题
把同一个 .o文件链接了两次,就出现了这个错误.郁闷.

gcc下 makefile是自己写的,要非常小心.

分享到:
评论

相关推荐

    BGP配置与排错PPT---CCNP必看

    它的配置和排错对于网络管理员来说至关重要,尤其是在CCNP(Cisco Certified Network Professional)认证的学习过程中。本PPT重点讲解了BGP的基础知识、配置步骤以及常见问题的解决方法。 BGP的强大之处在于它对...

    网络排错-网络安全-运维真实案例-公司大厦局域网网速慢排查手册.pdf

    网络排错-网络安全-运维真实案例-公司大厦局域网网速慢排查手册 本文档介绍了一种网络排错方法,旨在解决公司大厦局域网网速慢的问题。通过对网络异常流量的排查,发现了多个可能导致网络延时高和丢包的原因,并...

    新版思科CCNP路由交换排错中文PPT--难得一见

    route_ppt 1 EIGRP 2 OSPF 3 OSPF 4 Redistribute 5 BGP ch08 在企业网中实施IPv6 switch_ppt 1 VLAN 2 STP 3 routing-svi-cef 4 redundancy 5 sec 模块8 园区网中的语音和...模块7 集成、复杂企业网络的维护和排障

    H3CSE实验手册.rar

    1-1 2路由备份&聚合排错实验pdf 1-1-305P实验pdf 1-140sP排错实验pdf 1-50PF综合实验pdf 11-605P综合排错实验pdf 1-7151实验库pdf 1-8ISS排错实验pdf 19路由过滤&路由引入实验pdf 1-10路由过滤&路由引入排错实验pdf ...

    路由器故障排错入门-200309-C

    interface atm 12/0 atm clock internal chassis atm vc-per-vp 4096 atm oam flush ! interface atm 12/0.332 point-to-point atm pvc 332 3 32 aal5snap 0 0 0 encapsulation pppoe pppoe acName wenzhou

    H3CSE实验手册【合并版】.rar

    1-2 路由备份&聚合排错实验 1-3 OSPF 实验 1-4 OSPF 排错实验 1-5 OSPF 综合实验 1-6 OSPF 综合排错实验 1-7 IS-IS 实验库 1-8 IS-IS 排错实验 1-9 路由过滤&路由引入实验 1-10 路由过滤&路由引入排错实验 ...

    CCNP RS v2.0排错TSHOOT 300-135 官方认证指南 英文版

    《CCNP RS v2.0排错TSHOOT 300-135 官方认证指南》是一本专为准备Cisco Certified Network Professional (CCNP) Routing and Switching v2.0认证考试300-135设计的教材。这本书主要关注网络故障排查(TSHOOT)这一...

    Netmon 抓包经典排错案例 英文

    在本文中,我们将深入探讨几个使用Netmon进行排错的经典案例,帮助你提升在网络故障排查中的技能。 1. **状态代码与过滤** - Netmon提供了丰富的状态代码来描述网络通信的状态,例如连接建立、数据传输、断开连接...

    Windows用户态程序高效排错(01-02).rar

    本压缩包"Windows用户态程序高效排错(01-02)"可能涵盖了以上部分内容,通过深入学习,用户可以提升其在Windows环境下对用户态程序的排错能力,无论是开发过程中的问题定位,还是维护阶段的故障排查,都能更加...

    华为公司排错专家--第3章 广域网故障排除.ppt

    LCP问题则关注链路的建立和协商过程;验证问题检查认证协议如PAP或CHAP的配置;IPCP问题则涉及到IP地址的获取等。 2. **常用故障诊断命令**: - 在华为设备中,有一些关键的命令用于诊断和排除故障,如`debugging ...

    华为公司排错专家--第2章 物理层及以太网故障排除.ppt

    在本课程中,我们将深入探讨华为公司的网络设备故障排除,特别是物理层和以太网方面的故障处理。物理层是网络通信的基础,任何...在实践中,结合理论知识与实际情况,不断积累经验,将使您成为一名出色的网络排错专家。

    832 排错心得2011-07

    根据给定文件的信息,我们可以总结出一系列与网络排错相关的知识点。这些知识点主要涉及网络配置、故障排除方法以及具体的网络设备设置等。 ### 一、基本网络配置与故障定位 #### 1. IP地址配置检查 - **命令**: `...

    华为公司排错专家--第7章 中低端Lanswitch故障排除.ppt

    【华为公司排错专家——第7章 中低端Lanswitch故障排除】 在现代网络环境中,华为公司的网络产品,特别是中低端Lanswitch,扮演着至关重要的角色。随着这些产品的广泛应用,掌握其故障排除技巧对于网络维护人员来说...

    华为公司排错专家--第4章 TCP/IP故障排除.ppt

    在本课程“华为公司排错专家--第4章 TCP/IP故障排除”中,主要涵盖了网络维护人员必须掌握的网络故障排除技巧,特别是针对华为网络产品的故障处理。此课程旨在提升学员对TCP/IP协议栈问题的识别和解决能力,确保网络...

    H3CTEv2.2培训视频.zip

    目录网盘文件永久链接 H3CTE 学习笔记: 安全排错故障 H3CTE故障排除模拟题一 数据链路层故障排错 以太网和广域网常用的物理排错 路由协议排错 回顾总结 网络应用故障排除 ...H3CTEv2.2-路由协议排错-BGP-01

    原创LINUX EL5排错

    ### 原创LINUX EL5排错 在本文中,我们将探讨如何解决LINUX EL5(Red Hat Enterprise Linux 5)系统中的常见故障排除问题。通过分析一个具体案例,我们将学习如何处理诸如fstab、inittab、boot loader以及文件系统...

    ospf排错--csdn提示题目不详细

    标题“ospf排错--csdn提示题目不详细”可能是指一篇关于OSPF故障排查的文章或讨论,但具体细节未在标题中提供。描述中的“非得20个字吗? ft..”似乎是对字数限制的抱怨,暗示了可能的详细内容较多。 OSPF排错涉及多...

    Oracle排错 DBCA建库诡异问题处理--rac环境不能创建rac库

    ### Oracle排错 DBCA建库诡异问题处理--rac环境不能创建rac库 #### 故障处理概述 本文主要探讨了在Oracle RAC环境中利用DBCA(Database Configuration Assistant)工具进行数据库创建时遇到的一个特殊问题——无法...

    H3CTE排错报告-庄小波版

    很有参考价值一份排错报告,H3CTE考试满分1000分,其中排错报告300分,写好报告是关键的一部分。

Global site tag (gtag.js) - Google Analytics