请教centOS下运行程序出现的“字段类型错误”

时间:2023-02-22 10:36:25
此程序为师兄的程序,在他的电脑上运行没有错误,在我的电脑上就出现此错误,不知道是什么问题~~~~(>_<)~~~~ 

include/CPraseData.h 59 错误:字段‘m_ip_and_port'类型不完全#ifndef CPARSEDATA_H
#define CPARSEDATA_H
#include "postCommon.h"
#include "common.h"
#include "CParseHTTPHead.h"
using namespace std;

/*struct tuple
{
    std::string stSaddr;
    std::string stDaddr;
    std::string stSrcPort;
    std::string stDestPort;
};*/

struct Post_Info  //Define Node
{
    int PostID;
    char *ReceiverHost;
    char *FileName;
    char *FilePath;
    char *SrcIP;
    char *DstIP;
    char *SrcPort;
    char *DstPort;
    //unsigned short SrcPort;
    //unsigned short DstPort;
    char *Time;
    char *TempFilePath;
    char *PostType;
    char *Country;
};
class CParseData
{
    public:
        CParseData();  //
        virtual ~CParseData();
        bool SetHTTPHead(CParseHTTPHead *pHead);  //set title
        bool OutFile(const char *pData, char *pFileName, int DataLen);  //Out file
        bool Desplay_Post_Info();
        bool SetTuple4(struct tuple ip_and_port);
        int GetNewFilename(char *poldname, char *pFileName, int nFileNameLen);
        void GetFilenameWithoutSuffix(char *poldname, char *pFileName);
        std::string GetFiletype(char *pFileName);
        int DataCodeRevert(char *pFromCharset, char *pToCharset, int nInLen);
        int NameCodeRevert(char *pFromName, char *pToName);
        int code_convert(char* from_charset, char* to_charset, char* inbuf,
                             int inlen, char* outbuf, int &outlen);
string LCase(string strFileName);
        int m_fdout;
        virtual bool Parse(char *pData);  //Parse data
        void itoa(int i,char*string);
string LCase(char* pszFileName);
    protected:
        int m_nAtt_Count;
        std::string m_strDetail;
        int m_FileSize;
        class CParseHTTPHead *m_pHeadInfo;
        struct tuple m_ip_and_port;
        Post_Info m_pstrPost_Info;
};

#endif // CPARSEDATA_H

3 个解决方案

#1


/*struct tuple
{
  std::string stSaddr;
  std::string stDaddr;
  std::string stSrcPort;
  std::string stDestPort;
};*/
这个被注释了,tuple当然没有定义了。

#2


这个问题我也想过,但是别人的电脑上也是没有解开注释就可以编译成功的,我试了解开注释,会出现其他问题。

#3


别人机器上的头文件和你的不一样。
引用 2 楼  的回复:
这个问题我也想过,但是别人的电脑上也是没有解开注释就可以编译成功的,我试了解开注释,会出现其他问题。

#1


/*struct tuple
{
  std::string stSaddr;
  std::string stDaddr;
  std::string stSrcPort;
  std::string stDestPort;
};*/
这个被注释了,tuple当然没有定义了。

#2


这个问题我也想过,但是别人的电脑上也是没有解开注释就可以编译成功的,我试了解开注释,会出现其他问题。

#3


别人机器上的头文件和你的不一样。
引用 2 楼  的回复:
这个问题我也想过,但是别人的电脑上也是没有解开注释就可以编译成功的,我试了解开注释,会出现其他问题。