Страница 1 из 1

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

Добавлено: Вт июл 15, 2014 09:23:13
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? Куда нужно копать?

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

Добавлено: Вт июл 15, 2014 09:47:27
rexton
Не в ту тему написал. Как перенести можно?

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

Добавлено: Ср июл 23, 2014 20:57:12
Zud
Вообще-то printf - это библиотечная функция, потому и пытается прилинковать.

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

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