error: '[class name]' does not name a type

这个问题困扰了我好几个小时,真的很痛苦,所以记录一下。

我编译平台是Linux,编译命令如下:

g++ -g -Wall -std=c++11 -I/usr/local/mysql/include -I/usr/local/curl/include -o obj/tc_mysql.o -c tc_mysql.cpp

从命令中可以看出,我是对源文件tc_mysql.cpp进行编译。但是却始终报如下错误:

tc_mysql.cpp:12:1: error: 'TC_Mysql' does not name a type
TC_Mysql::TC_Mysql()

我发誓,我在源文件中一定包含了头文件,也不会像网上所说的存在多个头文件的相互依赖,头文件和源文件如下:

//头文件tc_mysql.h

#ifndef __TC_MYSQL_H
#define __TC_MYSQL_H

#include <mysql.h>

namespace mysqlHelper
{
class TC_Mysql 
{
public:
    /**
    * @brief 构造函数
    */
    TC_Mysql();

protected:
    /**
    * @brief copy contructor,只申明,不定义,保证不被使用 
    */
    TC_Mysql(const TC_Mysql &tcMysql);

    /**
    * @brief 只申明,不定义,保证不被使用
    */
    TC_Mysql &operator=(const TC_Mysql &tcMysql);

private:
    /**
    * 数据库指针
    */
    MYSQL *_pstMql;
};
}
#endif 
//源文件tc_mysql.cpp
#include "tc_mysql.h"

namespace taf
{
    TC_Mysql::TC_Mysql():_bConnected(false){
        _pstMql = mysql_init(NULL);
    }
}

聪明的你也许发现了问题的原因,但是我当时却困惑了很久,百度和google许久都没有解决问题,最后才发现端倪,真的是被自己坑了,原来使用命名空间的时候头文件和源文件的命名空间不一致所导致的问题。

写代码,真的要细心,切勿粗心啊!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏魏艾斯博客www.vpsss.net

新购腾讯云主机安全组未放行导致网站、数据库无法访问

62720
来自专栏linux驱动个人学习

线程详解

以下内容摘自《程序员的自我修养》 什么是线程? 线程(Thread),有时被称为轻量级(Lightweight Process, LWP),是程序执行流程的最小...

38750
来自专栏Java工程师日常干货

分布式利器Zookeeper(三)前言Zookeeper分布式锁的代码实现zkclientCurator

本篇博客是分布式利器Zookeeper系列的最后一篇,涉及的话题是:Zookeeper分布式锁的代码实现、zkclient的使用、Curator框架介绍等。

12120
来自专栏做全栈攻城狮

安卓学习教程-带你制作高效率多线程下载工具,快速下载网络文件

写代码也要读书,爱全栈,更爱生活。每日更新原创IT编程技术教程。技术大神带你做全栈攻城狮。

10520
来自专栏向治洪

Freeline--Android平台上的秒级编译方案

Freeline 技术揭秘 Freeline是什么? Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个...

28880
来自专栏云计算D1net

x86与x64的区别,云服务器如何选择操作系统?

云服务器中windows系列系统通常都有x86与x64两个版本。x86与x64有什么区别?云服务器用户该如何选择操作系统? ? x86与x64的区别: 1、x...

512100
来自专栏企鹅号快讯

做网站-推荐3种CSS,JS合并的方式

在Web项目的开发中,js,css文件会随着项目的开发变得越来越多,越来越大,这就给给性能方面带来一些问题,如,页面引入的的js,css越多的话,那么对就增加了...

769110
来自专栏编程

新手学习python遇到的一些简单问题

1.python2 还是python3? 新手经常在这个问题上思考了很久,2和3的语法大致相同,改动不 大,如在python2中print xxx,...

19490
来自专栏程序猿DD

云原生应用的12要素

简介 如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或软件即服务(SaaS)。12-Factor 为构建如下的 SaaS 应用提供了方法论: 使用...

515100
来自专栏逢魔安全实验室

某移动应用安全加固与脱壳技术研究与实例分析

62580

扫码关注云+社区

领取腾讯云代金券