Избегайте переопределения переменной-псевдонима для слабой ссылки в заголовочном файле

У меня есть переменная в заголовочном файле:

myHeader.h

uint16 dummyVar = 0;
extern const uint16 myVar __attribute__((weak,alias("dummyVar")));

Поэтому, когда я не связываю части, где myVar будет определен, компоновщик просто даст ему значение символа dummyVar,

Моя проблема в том, что я работаю над проектом с заданной архитектурой, где мой заголовочный файл myHeader.h включен в несколько C-файлов. Из-за этого я получаю несколько определений dummyVar, Но когда я определяю dummyVar за пределами моего заголовка это больше не работает для моего __attribute__ поскольку dummyVar должен быть определен, когда он назначен как псевдоним.

Есть ли способ, которым я могу обойти это без изменения базовой архитектуры этого?

1 ответ

Решение

Простым решением было бы просто объявить это следующим образом:

static uint16 dummyVar = 0;
Другие вопросы по тегам