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

 
 
> undefined reference to `_exit', Это уже было...
ajkpro
сообщение Feb 10 2013, 17:19
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 10-02-13
Пользователь №: 75 568



Это уже былоhttp://electronix.ru/forum/index.php?showtopic=99348, но там я не "дошел".
Это мой первый опыт, поэтому задаю еще раз.
Вот есть проект https://github.com/h0rr0rrdrag0n/stm32vldis...-linux-template
Вот, автор с описанием этого проекта: http://h0rr0rr-drag0n.blogspot.ru/2011/08/...inux-linux.html

Вот, такая ошибка:
Цитата
rmv7-m/libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x16): undefined reference to `_exit'
collect2: error: ld returned 1 exit status
make: *** [ldall] Ошибка 1


Это я уже понял, что некий деструктор не подхватывается. Но почему у автора и некоторых последователей прошло. Там рекомендуют sys.c, но его нет по ссылке. И другой компилятор сам устраняет проблему.
Как все-таки победить?

Спасибо! Александр.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ajkpro
сообщение Feb 13 2013, 03:49
Сообщение #2





Группа: Участник
Сообщений: 10
Регистрация: 10-02-13
Пользователь №: 75 568



Вот, map файл: http://yadi.sk/d/po6sankd2_2yQ



Сообщение отредактировал ajkpro - Feb 13 2013, 03:50
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 14 2013, 14:58
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(ajkpro @ Feb 13 2013, 09:49) *
Вот, map файл: http://yadi.sk/d/po6sankd2_2yQ

Короче, дело в следующем.
1. sys.c - забудьте про него, это совсем из другой оперы.
2. В вашем проекте почему-то вместо файла stm32_lib/device_support/gcc/startup_stm32f10x_md_vl.S используется файл начальной инициализации, предоставляемый компилятором по умолчанию. И он зачем-то вызывает _exit(). Это может быть действительно глюк компилятора.
3. Если вас это устраивает, просто добавьте в файл main.c функцию
Код
void _exit(int i)
{
    while (1);
}

А вообще, тот шаблон, который вы себе выбрали для старта - не очень удачный. Видите, сколько возни для того, чтобы просто скомпилировать его. Лучше возьмите другой шаблон, где всё сразу сделано нормально. Например, вот отсюда.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
ajkpro
сообщение Feb 14 2013, 17:21
Сообщение #4





Группа: Участник
Сообщений: 10
Регистрация: 10-02-13
Пользователь №: 75 568



Йесс! Поехало, спасибо! В выходные буду разбираться, сейчас на работе облом. Там у меня немного другое.

А может быть найдется ссылка на проект с stm32f4diskovery? Все-равно мне потом туда переползать.

А мар я распечатал, 13 листов. Обчитаешься!

Спасибо!
Александр.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 14 2013, 17:45
Сообщение #5


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



А какой вариант у вас "поехал"?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
ajkpro
сообщение Feb 15 2013, 03:47
Сообщение #6





Группа: Участник
Сообщений: 10
Регистрация: 10-02-13
Пользователь №: 75 568



Цитата(AHTOXA @ Feb 14 2013, 21:45) *
А какой вариант у вас "поехал"?

Добавил:
Код
void _exit(int i)
{
    while (1);
}

Но теперь не понятно, почему ругается на _exit, добавил функцию _exit (естественно), но в map`е находим (exit),т.е. без подчерркивания?
Это что-то обозначает? Есть где-нибудь русские комментарии к map?
Александр.
p.s. По английски в следующем сезоне sm.gif
Цитата(alx2 @ Feb 14 2013, 09:44) *
А дальше Вы будете разбираться, почему в Вашем crt0.o есть ссылка на exit, которой, как Вы считаете, там быть не должно...

А нет у меня crt0, ни в проекте, ни в компилляторе. Точнее, нет такого файла. А в проекте даже это слово содержится только в map`е.
Но в компиляторе crt0 встречается в 120 файлах...
Или какие-то опции компиляции не корректно, или чего-то не понимаю.
Александр

Сообщение отредактировал IgorKossak - Feb 15 2013, 09:05
Причина редактирования: лишние пробельные строки
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 15 2013, 04:02
Сообщение #7


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(ajkpro @ Feb 15 2013, 06:47) *
А нет у меня crt0, ни в проекте, ни в компилляторе. Точнее, нет такого файла. А в проекте даже это слово содержится только в map`е.

Опция линкера
Код
-Wl,-nostartfiles

имеется?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ajkpro   undefined reference to `_exit'   Feb 10 2013, 17:19
- - AHTOXA   Цитата(ajkpro @ Feb 10 2013, 23:19) Это я...   Feb 10 2013, 18:48
|- - ajkpro   Цитата(AHTOXA @ Feb 10 2013, 22:48) Потом...   Feb 11 2013, 17:36
|- - AHTOXA   Цитата(ajkpro @ Feb 11 2013, 23:36) А там...   Feb 11 2013, 20:05
|- - ajkpro   Цитата(AHTOXA @ Feb 12 2013, 00:05) Но, м...   Feb 12 2013, 03:25
||- - AHTOXA   Цитата(ajkpro @ Feb 12 2013, 09:25) По ка...   Feb 12 2013, 04:35
|- - alx2   Цитата(AHTOXA @ Feb 12 2013, 01:05) Может...   Feb 12 2013, 05:54
|- - ajkpro   Вот, main.c:Код#include "stm32f10x.h" voi...   Feb 12 2013, 17:43
|- - xemul   Кодvoid main(void) { ... while (1...   Feb 13 2013, 09:15
||- - ajkpro   Цитата(xemul @ Feb 13 2013, 13:15) Кодvoi...   Feb 13 2013, 16:39
||- - xemul   Цитата(ajkpro @ Feb 13 2013, 20:39) Ну, ц...   Feb 13 2013, 17:54
||- - ajkpro   Цитата(xemul @ Feb 13 2013, 21:54) Может ...   Feb 13 2013, 18:42
|- - alx2   Цитата(ajkpro @ Feb 12 2013, 22:43) Увы, ...   Feb 14 2013, 05:44
|- - AHTOXA   Цитата(_Pasha @ Feb 15 2013, 10:02) Опция...   Feb 15 2013, 04:25
|- - ajkpro   Цитата(AHTOXA @ Feb 15 2013, 08:25) Вроде...   Feb 16 2013, 07:25
- - alx2   Цитата(ajkpro @ Feb 15 2013, 08:47) Но те...   Feb 18 2013, 04:48


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 08:14
Рейтинг@Mail.ru


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