Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
Вопрос по локалям
bumax
Добавлено 06.04.2011 16:14
0
Сообщение: 1
bumax
0

Пункты: 87
Регистрация: 06.04.2011
Плата на at91sam6260. Проблема в следующем, при компиляциисофта под этут плату buildroot'овским тулчейном с диска вылетает такая проблема: например, функция printf("%f",1.23) возвращает 123, тоесть отсутствует точка. пробовал так:
Код
setlocale(LC_ALL, "C");
lm = *localeconv();

Тоже самое, причем если смотреть lm.decimal_point - то там ничего нет. Нашел где-то на форуме, что надо в настройках uClibc выключить поддержку WCHAR, но мне это не помогло. Куда копать?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 06.04.2011 17:59 Сообщение: 2
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Каккая версия buildroot, ядра, uclibc ? не припомню такой проблемы - могу просто проверть у себя.
Спуститься к концу Подняться к началу
Персональная информация
bumax
Добавлено 07.04.2011 02:16 Сообщение: 3
bumax
0

Пункты: 87
Регистрация: 06.04.2011
Да, прошу прощения... buildroot v2010.02, uclibc пробовал и 0.9.30.1 и 0.9.30.2, ядро 2.6.28. Вот на всякий случай мой мейкфайл. Может я что-то неправильно делаю? Опыта в этом деле нет, к сожалению.
Код
CC=arm-linux-uclibc-gcc
CXX=arm-linux-uclibc-g++
LD=arm-linux-uclibc-ld

LDFLAGS=-lsqlite3 -lpthread -Wl

export CC
export CXX
export LD
export LDFLAGS

EXEC = test
OBJS = test.o
all: $(EXEC)

$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ -lm -lmad -math $(OBJS) $(LDLIBS$(LDLIBS_$@))

romfs:
$(ROMFSINST) /bin/$(EXEC)

clean:
-rm -f $(EXEC) *.elf *.gdb *.o
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 07.04.2011 11:21 Сообщение: 4
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
#include <stdio.h>

int main(void)
{
printf("1.23 = %f\n", 1.23);
return 0;
}

# ./a.out
1.23 = 1.230000

Конфиг буилдрута
http://sasamy.narod.ru/config_uclibc
Спуститься к концу Подняться к началу
Персональная информация
bumax
Добавлено 08.04.2011 07:48 Сообщение: 5
bumax
0

Пункты: 87
Регистрация: 06.04.2011
Цитата
#include <stdio.h>

int main(void)
{
printf("1.23 = %f\n", 1.23);
return 0;
}

# ./a.out
1.23 = 1.230000

Конфиг буилдрута
http://sasamy.narod.ru/config_uclibc


хм... конфиг пульный... путь до компилятора у меня "...../buildroot/output/staging/usr/bin/". Это вообще в принципе правильно?
Спуститься к концу Подняться к началу
Персональная информация
bumax
Добавлено 09.04.2011 06:04 Сообщение: 6
bumax
0

Пункты: 87
Регистрация: 06.04.2011
Кстати, да, затупил... компилирую без ключа -static. Наверное сами локали надо куда-то положить...
Спуститься к концу Подняться к началу
Персональная информация
walt
Добавлено 03.05.2012 10:56 Сообщение: 7
walt
0

Пункты: 26
Регистрация: 02.05.2012
Получилось вывести точку в printf? У меня та же беда - ничего не могу сделать. Версии такие же, как указано выше. Прописывал в LC_NUMERIC POSIX - один фиг, не помогает. Расставлял по вкусу птички на все возможные опции, где упоминается плавающая точка - безрезультатно. Причем, сами расчеты с плав. точкой выполняются верно, но где эта точка при выводе?? Судя по переменным, язык en_US, русского нет вообще, т.е. должна она быть, но нету. Помогите, люди!!!
Спуститься к концу Подняться к началу
Персональная информация
walt
Добавлено 13.06.2012 16:02 Сообщение: 8
walt
0

Пункты: 26
Регистрация: 02.05.2012
Во-первых, призываю всех, кто задавал вопросы и каким-либо образом решивших проблему, не лениться и делиться решением проблемы - это и помощь, и просто порядочно.
Во-вторых, потратив кучу времени, свою проблему решил, заменив buildroot на версию 2010.05, ядро прежнее - 2.6.28, оставив самый необходимый минимум опций в конфигах. Т.о., скачанная с фтп прошивка для моей платы SK-AT91SAM9XE512-SIM300 (buildroot 2010.02+kernel 2.6.28) - глючная. До кучи, uboot тоже пришлось менять на 2011.06.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux