Я пытаюсь создать массив внешних объектов, но мне кажется, что у меня проблема со связыванием. У меня есть класс, определенный в файле class.hpp, в файле Declarations.cpp я включаю заголовок класса и приступаю к созданию массива класса, затем в моем втором файле заголовка у меня тот же массив, объявленный как extern, этот заголовок должен быть включен там, где мне нужно его использовать, тогда файл main_header.hpp используется для инициализации массива extern, поэтому их можно использовать везде, где включен main_header.hpp.
Но я получаю:
ошибка: не определено Ссылка на "myArray" на main_header.hpp
Приведенный ниже код является минимальным кодом для воспроизведения проблемы, здесь я опустил защиту заголовков и код, который не важен.
это мои настройки:
class.hpp
class myClass
{
//Class Declaration
};
/* end of file */
Declarations.cpp
#include "class.hpp"
myClass myArray[4];
/* end of file */
main_header.hpp
#include "class.hpp"
extern myClass *myArray;
/* end of file */
main_header.cpp
#include "main_header.hpp"
void setup()
{
for(uint8_t i = 0; i < 4; i++)
{
myArray[i] = myClass();
myArray[i].begin();
}
}
/* end of file */
main.cpp
#include "main_header.hpp"
void function()
{
setup();
myArray[0].test();
}
/* end of file */
Как правильно объявить массив внешних объектов ??
Заранее спасибо!
Чече Ромо
редактирование:
Я компилирую с g ++ на PSoC Creator.
edit2:
, если в моем заявлении.cpp я добавлю
int var = 0;
затем на main_header.hpp я добавляю
extern int var;
затем на главном cpp
int a = var;
он не показывает ошибку для var, только для myArray.