#include "canthread.h"
#include "communication/uartandcanshare.h"
#include <sys/socket.h>
#include <linux/can.h>//对应头文件
#include <net/if.h>
#include <sys/ioctl.h>
#include <linux/can/raw.h>
#include <errno.h>
#include <getopt.h>
#include <unistd.h>
#define BUF_SIZ (255)
#define myerr(str) fprintf(stderr, "%s, %s, %d: %s\n", __FILE__, __func__, __LINE__, str)
canThread *canThread::m_canthread = NULL;
canThread::canThread(QObject *parent):
QThread(parent)
{
#if 1
struct sockaddr_can addr; //此处报错
struct ifreq ifr;
int canfd;
canfd = socket(PF_CAN, SOCK_RAW, CAN_RAW);
if(canfd == -1)
{
perror("Socket failed");
exit(1);
}
...
}
报错内容:
/opt/code/Bartack/src/communication/canthread.cpp:26: error: aggregate 'canThread::canThread(QObject*)::sockaddr_can addr' has incomplete type and cannot be defined
struct sockaddr_can addr;
^
头文件已经包含了,实在想不出为什么会这样,求助,求助,求助