gpt4 book ai didi

c - MPLAB X 中的有效代码和编译器错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:37:46 24 4
gpt4 key购买 nike

我有主文件:

#include "modbus.h"

void main(void)
{
modbus_frame_t frame;
// (...)

// ERROR ON LINE BELOW
// main.c:59:: error: (712) can't generate code for this expression
crc16(frame, 1);
}

这是“modbus.h”文件:

#ifndef MODBUS_H
#define MODBUS_H

#define MODBUS_FRAME_BUFFER_SIZE 74

struct modbus_frame {
unsigned char * data[MODBUS_FRAME_BUFFER_SIZE];
unsigned char * len;
};

typedef struct modbus_frame modbus_frame_t;

char crc16(modbus_frame_t f, char check);

#endif

这是“modbus.c”文件:

#include "modbus.h"

char crc16(modbus_frame_t f, char check) {
// (...)
}

MPLAB XC8 2.05 编译器说:

main.c:59::error: (712) 无法为此表达式生成代码

当我将结构更改为:

struct modbus_frame {
unsigned char data[MODBUS_FRAME_BUFFER_SIZE];
unsigned char len;
};

它抛出没有意义的不同错误( undefined symbol _crc16())。

我的代码有什么问题?

最佳答案

我找到了。

文件“modbus.h”和“modbus.c”已添加到"file"工具窗口中,如下所示:

enter image description here

但它们在项目结构中缺失:

enter image description here

并且 MPLAB 没有在ma​​ke 命令参数中考虑这些文件。

没想到是这样

在我在项目结构中添加“modbus.h”和“modbus.c”(添加现有文件)后 - 事件按预期工作。

关于c - MPLAB X 中的有效代码和编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54696088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com