Target
Board |
STM32MP157F-EV1(ST)
|
Host
|
PC - Ubuntu 22.04
|
목표
|
STM32MP1 개발 환경 구축 - hello-world application
|
아래 링크를 참조하여 진행 한다.
1. 폴더 만들기
PC $ mkdir /home/본인PC이름/STM/Developer-package/stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/sources/gtk_hello_world_example
2. 폴더로 이동
PC $ cd /home/본인PC이름/STM/Developer-package/stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/sources/gtk_hello_world_example
3. gtk_hello_world.c 생성
#include <gtk/gtk.h>
static void
print_hello (GtkWidget *widget,
gpointer data)
{
g_print ("Hello World\n");
}
static void
activate (GtkApplication *app,
gpointer user_data)
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *button_box;
window = gtk_application_window_new (app);
gtk_window_set_title (GTK_WINDOW (window), "Window");
gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
gtk_container_add (GTK_CONTAINER (window), button_box);
button = gtk_button_new_with_label ("Hello World");
g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);
gtk_container_add (GTK_CONTAINER (button_box), button);
gtk_widget_show_all (window);
}
int
main (int argc,
char **argv)
{
GtkApplication *app;
int status;
app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
return status;
}
4. Makefile 생성
PROG = gtk_hello_world
SRCS = gtk_hello_world.c
CLEANFILES = $(PROG)
# Add / change option in CFLAGS and LDFLAGS
CFLAGS += -Wall $(shell pkg-config --cflags gtk+-3.0)
LDFLAGS += $(shell pkg-config --libs gtk+-3.0)
all: $(PROG)
$(PROG): $(SRCS)
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
clean:
rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS))
5. cross-compile
PC $ make

에러나서 구글 검색해 보니 gtk3을 설치하라고 한다.
PC $ sudo apt-get install libgtk-3-dev
설치 후 다시 compile

6. 실행
보드로 실행 파일 업로드
PC $ scp gtk_hello_world root@172.10.6.98:/usr/local

weston으로 실행
Board $ cd /usr/local/
Board $ su -l weston -c "/usr/local/gtk_hello_world"

'ST > STM32MP157' 카테고리의 다른 글
STM32MP1 - STM32MP157F-EV1 (0) | 2025.03.22 |
---|---|
STM32MP1 개발(8) - Cortex-A Linux Kernel 수정 (0) | 2025.03.22 |
STM32MP1 개발 환경 구축(6) - Cortex-A Distribution Package 설치 (0) | 2025.03.22 |
STM32MP1 개발 환경 구축(5) - Cortex-A Developer Package 실행 (0) | 2025.03.22 |
STM32MP1 개발 환경 구축(4) - Cortex-A Developer Package 설치 (0) | 2025.03.22 |