Member 13376650 Ответов: 1

(Process:1477): gtk-WARNING **: locale не поддерживается библиотекой C. Использование резервной локали "с".


У меня есть плата nanopi-m1 на основе ARM. Я установил на него Armbian(Ubuntu-server 16.04). Также я установил :
xorg, openbox, xserver-x11-video-fbdev and libgtk-3-dev
на нем. и сделал три файла .conf:
Add to file /etc/modules-load.d/fbtft.conf

spi-bcm2835

fbtft_device


Add to file /etc/modprobe.d/fbtft.conf

options fbtft_device custom name=fb_ili9341 gpios=reset:1,dc:201,led:6 speed=16000000 rotate=90 bgr=1


Add to file: /usr/share/X11/xorg.conf.d/99-fbdev.conf

Section "Device" Identifier "myfb" Driver "fbdev" Option "fbdev" "/dev/fb8" EndSection


И
Add to /etc/rc.local 
startx


Так что у меня есть этот экран после загрузки: [^]

Это окно openbox.

Затем я попытался показать изображение на своем ЖК-дисплее SPI .Код C как вы можете видеть ниже:

#include <gtk/gtk.h>

void destroy(void) {
  gtk_main_quit();
}

int main (int argc, char** argv) {
  GtkWidget* window;
  GtkWidget* image;

  gtk_init (&argc, &argv);


  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  image  = gtk_image_new_from_file(argv[1]);

  g_signal_connect(G_OBJECT (window), "destroy",
             G_CALLBACK (destroy), NULL);

  gtk_container_add(GTK_CONTAINER (window), image);

  gtk_widget_show_all(window);

  gtk_main();

  return 0;
}


Но после компиляции моего кода без ошибок, когда я пытаюсь запустить исполняемый файл через ssh, он выдает мне это сообщение:

(process:1909): Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.


И мое изображение, показанное в моем ноутбуке вместо ЖК-дисплея моей платы!
Как я могу это исправить?
Я хочу, чтобы мое изображение отображалось внутри моего SPI LCD, а не на дисплее ноутбука!

Что я уже пробовал:

Я много искал и спрашивал на некоторых других сайтах, но до сих пор не мог найти никакого решения!

Afzaal Ahmad Zeeshan

Это предупреждение, а не ошибка. Вы можете игнорировать это предупреждение, если только не хотите, чтобы эта Локаль поддерживалась. Что касается изображения, то какие оконные ручки вы используете? Я предполагаю, что код нацелен на сам рабочий стол.

Member 13376650

Что такое поддержка локали?
Я не знаком с GTK и нашел этот пример в интернете! моя проблема в том, что мне нравится видеть изображение внутри моего SPI LCD, а не в моем ноутбуке!

1 Ответов

Рейтинг:
8

Jochen Arndt

Похоже, вы включили X11-переадресацию для SSH-клиента на своем ноутбуке. Затем выходные данные приложения X11 отправляются на SSH-клиент и отображаются там.

То в разделе setlocale[^] функция библиотеки C используется для указания того, как обрабатываются зависящие от локали значения (даты, время, числовые значения, денежные значения, сортировка) и какой набор символов следует использовать. Локаль "C" по умолчанию использует настройки английского языка США с набором символов ASCII.

Чтобы исправить ситуацию место действия предупреждение смотрите командная строка - `Gtk-WARNING **: Локаль не поддерживается библиотекой C. ` при запуске приложений из командной строки - спросите Ubuntu[^].

Насколько я знаю GTK будет читать LC_* и LANG* переменные среды для установки локали. Воспользуйся printenv(1) - Страница руководства Linux[^] чтобы показать ваши текущие настройки и проверить установленные языки с помощью locale(1) - Страница руководства Linux[^] использование -a вариант.