Избегайте переопределения переменной-псевдонима для слабой ссылки в заголовочном файле
У меня есть переменная в заголовочном файле:
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;