Страница 1 из 1
arm-none-eabi-gcc, alias function, aliased to undefined symb
Добавлено: Ср ноя 09, 2022 12:25:41
sunjob
день добрей, господа кладуны! :о)
исходные следующие
Код: Выделить всё
- arm-none-eabi
- arduino-due (платформа)
- __attribute__ alias
пример-отладка
Код: Выделить всё
static int oldname(int x, int y) { return x + y; }
static int newname(int x, int y) __attribute__((alias("oldname")));
void setup(){;}
void loop() {;}
согласно
url
выдает ошибку
Код: Выделить всё
alias_function:6:12: error: 'int newname(int, int)' aliased to undefined symbol 'oldname'
static int newname(int x, int y) __attribute__((alias("oldname")));
^~~~~~~
exit status 1
первый раз выкрутился препроцессором
теперь надо однозначно алиас
п.с. спасибо, кидайтесь ... :о)
Re: arm-none-eabi-gcc, alias function, aliased to undefined
Добавлено: Ср ноя 09, 2022 13:19:29
VladislavS
Ардуина это С++, а в С++ имена функций не такие как кажутся. Вот так получится.
Код: Выделить всё
extern "C"
{
static int oldname(int x, int y) { return x + y; }
}
static int newname(int x, int y) __attribute__((alias("oldname")));
Re: arm-none-eabi-gcc, alias function, aliased to undefined
Добавлено: Ср ноя 09, 2022 14:32:04
sunjob
нк-ка ну-ка ну-ка... щассс... одним глазочком, одним коготочком глянем...
p.s. наверное, лучше такь?
Код: Выделить всё
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
--> другая опышка
Код: Выделить всё
alias_function:14:15: error: expected unqualified-id before string constant
static int oldname(int x, int y) { return x + y; }
^~~
exit status 1
ща мышку погонаю, заодно спрошу у нее, может подскажет?!

Re: arm-none-eabi-gcc, alias function, aliased to undefined
Добавлено: Ср ноя 09, 2022 14:36:26
Eddy_Em
VladislavS, а что общего у ардуины-наны и ARM? Как вообще ТС может что-то собирать при помощи arm-none-eabi-g++ под абдурину?
Re: arm-none-eabi-gcc, alias function, aliased to undefined
Добавлено: Ср ноя 09, 2022 14:49:09
sunjob
эдуард....

это-же абдурина-дуя!!! (сорри, оправился...)
Re: arm-none-eabi-gcc, alias function, aliased to undefined symb
> Ардуина это С++
проект, как раз, пишется на СИ, с максимальным отходом от Абдурины... только минимальными средствами
libsam &
CMSIS
Код: Выделить всё
~/.arduino15/packages/arduino/hardware/sam/1.6.12/system
- libsam/ <-- $(ROOT)/sam/libsam
- CMSIS/ <-- $(ROOT)/sam/CMSIS/
p.s.
заработала-а-а-а...

(
*)
Код: Выделить всё
#ifdef __cplusplus
extern "C" {
#endif
static int oldname(int x, int y);
static int newname(int x, int y);
#ifdef __cplusplus
}
#endif
static int oldname(int x, int y) { return x + y; }
static int newname(int x, int y) __attribute__((alias("oldname")));
всем большое спасибо за волшебные пендили
(
*) - хотя странно, ведь реализация данного модуля на
С++, следовательно "экранирование" не требуется (в проекте используются одновременно
С и
С++)
Re: arm-none-eabi-gcc, alias function, aliased to undefined
Добавлено: Ср ноя 09, 2022 14:55:18
VladislavS
sunjob, хвостом чую - какую-то муйню задумали. Не мудрите. В нормальном коде это всё не надо.
Re: arm-none-eabi-gcc, alias function, aliased to undefined
Добавлено: Ср ноя 09, 2022 14:56:14
sunjob
а я обычно... усами и носом пользуюсь

и вам, лично, спасибо!
Re: arm-none-eabi-gcc, alias function, aliased to undefined
Добавлено: Ср ноя 09, 2022 15:26:28
VladislavS
[uquote="sunjob",url="/forum/viewtopic.php?p=4317268#p4317268"](
*) - хотя странно, ведь реализация данного модуля на
С++, следовательно "экранирование" не требуется[/uquote]Это компиляторозависимо. IAR нормально берёт, а GCC и ARMClang подавились. Им вот так кажется нормальным
Код: Выделить всё
int oldname(int x, int y) { return x + y; }
static int newname(int x, int y) __attribute__((alias("_Z7oldnameii")));
Re: arm-none-eabi-gcc, alias function, aliased to undefined
Добавлено: Ср ноя 09, 2022 15:51:15
sunjob
и что можно от них еще ожидать?! (не говоря уже про конвейрер/последовательность комнанд, какие там алиасы?! ... слова то какие завумные)
Re: arm-none-eabi-gcc, alias function, aliased to undefined
Добавлено: Ср ноя 09, 2022 15:57:32
VladislavS
[uquote="sunjob",url="/forum/viewtopic.php?p=4317292#p4317292"]и что можно от них еще ожидать?![/uquote]Соблюдения стандарта языка. Поэтому, самому дальше стандарта не ходить.
Re: arm-none-eabi-gcc, alias function, aliased to undefined
Добавлено: Ср ноя 09, 2022 17:05:55
sunjob
да тут хоть засоблюдайся и занеходись... (*) гарантии нет (about конвейр итд)
но это уже серьезная тема, не к топику...
(*) то-то мы с алиасами понасаблюдались и понастандартились
