реклама на сайте
подробности

 
 
> Вызов функции через указатель
paskal
сообщение Jun 27 2016, 18:39
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Пытался сделать сабж, работая с командной строки:
Код
void f()
{
}
void (*pf)() = &f;
int main()
{
  pf();
}

Компилирую. Ввожу с командной строки:
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -c main.cpp
- все ОК
Затем линкую:
arm-none-eabi-ld -Ttext=0x8000000 -Tdata=0x20000000 -o main.elf startup.o main.o
- сообщает
Цитата
undefined reference to '__aeabi_unwind_cpp_pr0'

Другие программы у меня таим способом нормально компилируются. Проблема только когда вызываю функцию через указатель. Что это значит? Как этого избежать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Aaron
сообщение Jun 28 2016, 06:37
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



По первой же поисковой ссылке находится возможный ответ:
Цитата
Link order is very important. Objects and libraries that provide symbols must be linked after objects and libraries that require symbols.

ключик -lc при линковке добавьте в конец, а вообще надо отключать всякую отладку, чтобы эта дрянь не лезла.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 21:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01341 секунд с 7
ELECTRONIX ©2004-2016