sunjob 0 9 ноября, 2022 Опубликовано 9 ноября, 2022 (изменено) · Жалоба день добрей, господа кладуны! :о) исходные следующие - 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 первый раз выкрутился препроцессором теперь надо однозначно алиас п.с. спасибо, кидайтесь ... :о) Изменено 9 ноября, 2022 пользователем sunjob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 9 ноября, 2022 Опубликовано 9 ноября, 2022 · Жалоба Судя по int newname(int, int) у вас С++. Похоже alias работает на символы, как они присутсвуют в объектнике, а там С++ mangling. Добавьте extern "C" перед int oldname(int x, int y) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sunjob 0 14 ноября, 2022 Опубликовано 14 ноября, 2022 (изменено) · Жалоба #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"))); да, проблему уже решили...(спасибо :о) Изменено 14 ноября, 2022 пользователем sunjob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться