Код (Text): qorlum@qorlum:~/Документы/Projects/Window$ gcc -Wall -s -O3 window.o -o window `gtk-config --cflags` `gtk-config --libs` window.o: In function `main': (.text+0xb0): undefined reference to `gtk_widget_set_size_request' collect2: выполнение ld завершилось с кодом возврата 1 При линковке выдает эту ошибку... Чувствую себя ослом..=( Вот код... Код (Text): proc main argc, argv lea eax, [argc] lea ebx, [argv] ccall gtk_init, eax, ebx ccall gtk_window_new, GTK_WINDOW_TOPLEVEL mov [hWindow], eax ccall gtk_button_new_with_label, szClickMe mov [hButton], eax ccall gtk_signal_connect, [hWindow], szDeleteEvent, DeleteEvent ccall gtk_signal_connect, [hButton], szClicked, ButtonClick ccall gtk_container_add, [hWindow], [hButton] ;ccall gtk_container_set_border_width, [hWindow], 10 ccall gtk_window_set_default_size, [hWindow],640, 480 ccall gtk_widget_set_uposition, [hButton],100,150 ccall gtk_widget_set_size_request, [hButton], 20,50 ccall gtk_widget_show, [hButton] ccall gtk_widget_show, [hWindow] call gtk_main ret endp До него написано extrn ccall gtk_widget_set_size_request Уже часа 3 бьюсь головой об стену... Не могу понять что не так... Остальные функции главное норм а эта... мб я че то не установил... Помогите..
Укажи компоновщику, где лежит либа, экспортрующая gtk_widget_set_size_request. Сам не знаю - гном не пользую. Гугли, вобщем.
gtk-config --cflags -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include В общем я нашел хедер по данному пути (/usr/include/gtk-1.2/gtk) в котором описаниа данная функция... Почему если она там есть линкер мне пишет такое...? Может я чушь несу..
Загадочно. А что за gtk-config? Я по жизни использую `pkg-config --libs gtk+-2.0'. Может gtk-config -- это от gtk-1.x? Собственно проверить не могу, ибо у меня: Код (Text): [rgo ~]$ gtk-config --libs bash: gtk-config: команда не найдена И в то же время: Код (Text): [rgo ~]$ pkg-config --libs gtk+-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
Кстати на pcg-config у меня выдает Код (Text): qorlum@qorlum:~/Документы/Projects/Window$ gcc -Wall -s -O3 window.o -o window `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0` window.o: In function `main': (.text+0x45): undefined reference to `gtk_signal_connect' window.o: In function `main': (.text+0x5d): undefined reference to `gtk_signal_connect' collect2: выполнение ld завершилось с кодом возврата 1
Код (Text): -L/usr/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm вот у меня чо пишет...
Почему не работает set_usize в данном коде Код (Text): format ELF include 'cdecl.inc' include 'gtk.inc' public main ; extrn blah extrn gtk_init extrn gtk_window_new extrn gtk_button_new_with_label extrn gtk_signal_connect_full extrn gtk_container_add extrn gtk_container_set_border_width extrn gtk_widget_show extrn gtk_main extrn gtk_widget_set_size_request extrn gtk_window_set_default_size extrn gtk_widget_set_uposition extrn gtk_widget_set_usize extrn g_print extrn exit section '.data' writeable szDeleteEvent db "delete_event", 0 szExitMsg db "closing application...", 10, 10, 0 szClicked db "clicked", 0 szClickMe db "Click me!", 0 szWasClicked db "Button was clicked...", 10, 10, 0 section '.bss' writeable hWindow dd ? hButton dd ? section '.text' executable proc main argc, argv lea eax, [argc] lea ebx, [argv] ccall gtk_init, eax, ebx ccall gtk_window_new, GTK_WINDOW_TOPLEVEL mov [hWindow], eax ccall gtk_button_new_with_label, szClickMe mov [hButton], eax ccall gtk_signal_connect_full, [hWindow], szDeleteEvent, DeleteEvent, 0,0,0,0,0 ccall gtk_signal_connect_full, [hButton], szClicked, ButtonClick, 0,0,0,0,0 ccall gtk_container_add, [hWindow], [hButton] ;ccall gtk_container_set_border_width, [hWindow], 200 ccall gtk_window_set_default_size, [hWindow],640, 480 ccall gtk_widget_set_uposition, [hButton],100,150 ccall gtk_widget_set_usize, [hButton],50,140 ccall gtk_widget_set_size_request, [hButton],50,140 ccall gtk_widget_show, [hButton] ccall gtk_widget_show, [hWindow] call gtk_main ret endp proc ButtonClick widget, gdata ccall g_print, szWasClicked ret endp proc DeleteEvent widget, gdata ccall g_print, szExitMsg ccall exit, 0 ret endp
Получается вот так как то(1)..., хотя должны ставится размеры кнопы и получаться вот так(2) (то есть должны выставляться размеры кнопы)... В заголовках смторел данная функция присутсявует 1 2 |-----------------------------------------------------------------| |-----------------------------------------------------------------| | | | | | | | | | | | | | г ----------------------------------------| | г ----------------------------------------| | | | | | | | | | | | Button | | | | | |_______________________ | | | Button | | | | | | | | | | | | | | | | | | |_____________|________________________| |_____________________________________| ???
Вообще писать под линь на асме извращенство...=) Ну если тебе такой способ не нравится предложи другой способ GUI сделать...
слушай... Я во чего вспомнил, а ведь gtk_signal_connect -- это что-то устаревшее в gtk+, не? я давненько не пользовался gtk+, но вроде тогда напротив этих функций в доках стояло `deprecated', и рекомендовали пользоваться g_signal_connect. Сравни-ка используемую версияю gtk+ и версию, документацию к которой ты читаешь.