Eu anexei um teclado à minha placa e abri o seu terminal (com o botão direito do mouse dentro da janela de abertura) e executei meu programa com sucesso e ele mostrou minha foto no LCD da SPI!
Instalei libgtk-3-dev
e escrevi e compilei este código com sucesso (sem erros, quero dizer):
#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;
}
Mas depois de tentar executar o executável, diz:
(process:5771): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
(img:5771): Gtk-WARNING **: cannot open display:
Devo dizer que eu uso o Ubuntu-server 16/04 e instalei xorg, xserver-xorg-video-fbdev, openbox
packages também. Eu tenho uma tela em branco cinza com um mouse preto e clique com o botão direito do mouse no menu após a inicialização.
EDITAR:
Eu usei esse comando para conectar a minha placa: ssh [email protected] -X
Então o programa funcionou e ele abriu a imagem por ./img 1.png
mas no meu laptop que usei para o ssh! Eu gostei de abrir a imagem no LCD da minha placa, não no meu laptop!
Também me dá esta mensagem no terminal:
(process:1909): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.
SOLUTION:I attached a keyboard to my board and opened it's terminal(by right-click inside it's openbox window) and executed my program successfully and it showed my picture in the SPI LCD!
O erro que você recebeu é:
(process:1909): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.
O executável img está exibindo a imagem no modo de fallback em seu laptop, em vez de exibi-la no monitor LCD que está conectado à sua placa. A tela de LCD que está conectada à sua placa está recebendo saída no Openbox:
O gcc-5 é o compilador GNU C que está instalado no meu Ubuntu 16.04 que eu usei para compilar seu código.
gcc-5 'pkg-config --cflags gtk+-3.0' -o img img.c 'pkg-config --libs gtk+-3.0'