Странное поведение GCC/CooCox

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Родился
Сообщения: 5
Зарегистрирован: Пн июл 07, 2014 11:31:03

Сообщение rexton »

Пишу программу под STM32F207. Среда разработки CooCox компилятор arm-2011.03-coocox
Проблема в следующем:
Когда в кокосе в репозитории ставишь галочку "Retarget printf" в проект добавляется 2 файла Printf.c и Syscals.c .
Так вот при компиляции пишет :

d:/programs/coide/arm-2011.03-coocox/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-impure.o):(.data+0x0): multiple definition of `_impure_ptr'
[cc] ..\obj\printf.o:(.data+0xf0): first defined here


В настройках проекта стоит "Not use C library". Никакие библиотеки не добавлены для линковки.
вот строка из вкладки Link
-mcpu=cortex-m4; -mthumb; -g; -nostartfiles; -Map=SCP-2_OS.map; -Os; --gc-sections; -L${linkdir}; -T${linkdir}/link.ld;

Почему линковщик пытается присоеденить libc? Куда нужно копать?
Реклама
Родился
Сообщения: 5
Зарегистрирован: Пн июл 07, 2014 11:31:03

Сообщение rexton »

Не в ту тему написал. Как перенести можно?
Реклама
Zud
Встал на лапы
Аватара пользователя
Сообщения: 129
Зарегистрирован: Пн авг 19, 2013 03:23:00
Откуда: замкадье

Сообщение Zud »

Вообще-то printf - это библиотечная функция, потому и пытается прилинковать.

Первый поиск по гуглу дал результат: http://www.coocox.org/forum/topic.php?id=233

Там говорится, что необходимо поставить соответствующие галочки касательно библиотек и включить библиотечные файлы stdio.h и stdarg.h в модуль, где вы собственно будете использовать printf.
Ответить

Вернуться в «ARM»