unresolved external symbol
Знаю, что такой вопрос уже был задан ранее до меня, но данные ответы там, мою проблему не решают.
При запуске программы и попытке записи в news.Read_Bufer.out[n_byte]
возникает ошибка unresolved external symbol (news / _news)
. При этом, если я попробую взять массив из любого другого класса из другого hpp, при условии, что я добавлю #include
и extern
, по нему ошибок не будет. Если я скопирую код объединения union
с массивом из другого hpp в мой и попробую это запустить, изменив только названия выдаст такую же ошибку.
Пробовал менять названия, потому что боялся, что компилятор может из-за них выдавать ошибку. Засовывал struct
в union
, короче крутил-вертел, но толку 0, ошибка остается.
//hpp
#ifndef __newscreen_HPP__
#define __newscreen_HPP__
class newscreen {
public:
int variable_func(int, int);
void init_func(void);
struct ByteSeq {
unsigned char FHH;
unsigned char FHL;
unsigned char BC;
unsigned char CMD;
unsigned char ADRSH;
unsigned char ADRSL;
unsigned char NUM;
unsigned char BYTE1H;
unsigned char BYTE1L;
unsigned char BYTE2H;
unsigned char BYTE2L;
};
union dataRxBuf {
unsigned char out [10];
ByteSeq in;
};
dataRxBuf Read_Bufer;
};
#endif
//cpp
#include newscreen.hpp
//какие-то функции
extern newscreen news;
__interrupt void IRQ_UART_4_RX(void){
static unsigned char n_byte = 0;
unsigned char = byte;
byte = RDR04; //recieving data from MCU
if (n_byte <= 10){
news.Read_Bufer.out[n_byte] = byte;
n_byte++;
}
}