Jump to content

Программирование GTK+ на OpenSUSE


Recommended Posts

Доброго времени суток!

 

ОС: OpenSUSE

Платформа: GTK+

IDE: Geany

Язык: C

 

При использовании #include <gtk/gtk.h> выдает следующую ошибку:

gcc -Wall -o "gtktest" "gtktest.c" (в каталоге: /home/meuser/проекты/gtktest)gtktest.c:1:21: fatal error: gtk/gtk.h: Нет такого файла или каталога #include <gtk/gtk.h>                     ^compilation terminated.Сборка завершилась с ошибкой.

/etc/environment содержит:

PKG_CONFIG_PATH=/usr/include/gtk-2.0/

/usr/include/gtk-2.0/ содержит папку gtk с указанным h файлом.

 

Edited by LifeOnNet
Link to comment
Share on other sites

1) Может отказаться от прямого указания папки gtk (попробовать переместить gtk.h в gtk-2.0) ?

 

 #include <gtk.h>

 

2) #include </gtk/gtk.h>

 

2) #include "gtk/gtk.h" ?

Edited by Teddy_Bear
Link to comment
Share on other sites


sudo aptitude install build-essential gcc

Загрузка данных о репозиториях...

Чтение установленных пакетов...

Пакет 'build-essential' не найден.

'gcc' уже установлен.

Link to comment
Share on other sites

Сорри, это ж не убанта.

 

Надо установить  C/C++ compiler and required Development Tools

Открыть YAST Software Management ;

Изменить  Filter to ‘Patterns’

Выбрать

Base Development
Linux Kernel Development
C/C++ Development (C/C++ Compiler and Tools )

 

Нажать Accept

 

Или из командной строки из-под рута

zypper install -t pattern devel_C_C++
Edited by Teddy_Bear
Link to comment
Share on other sites

  • 4 weeks later...
#include <gtk/gtk.h>#include <stdlib.h>void messageup();void exiting();struct data{    const gchar *message;    GtkWidget *window;};int main (int   argc, char *argv[]){      GtkBuilder      *builder;  GtkWidget       *window;  GtkWidget       *entryMainValue;  struct data d;  gtk_init (&argc, &argv);  builder = gtk_builder_new ();  gtk_builder_add_from_file (builder, "samplemain.ui", NULL);  window = GTK_WIDGET (gtk_builder_get_object (builder, "applicationwindow1"));  entryMainValue = GTK_WIDGET (gtk_builder_get_object (builder, "entryMainValue"));  g_signal_connect (window, "delete_event", G_CALLBACK (exiting), NULL);  d.message = gtk_entry_get_text(GTK_ENTRY(entryMainValue));   d.window = window;  g_signal_connect (entryMainValue, "activate", G_CALLBACK (messageup), &d);  g_object_unref (G_OBJECT (builder));  gtk_widget_show (window);                  gtk_main ();  return 0;}void messageup(GtkWidget *entryMainValue, gpointer user_data){        struct data *d = user_data;    GtkWidget * messagebox;        messagebox = gtk_message_dialog_new((GtkWindow *) d->window, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s\n", d->message);    g_signal_connect_swapped (messagebox, "response", G_CALLBACK (gtk_widget_destroy), messagebox);    gtk_widget_show(messagebox);}void exiting(){    exit(0);}

Написал тестовую програмку для GTK. Проблема заключается в том, что полученный текст из поля ввода не отображается в диалоговом окне позже.

Буду рад подсказке, что делаю не так :). Заранее спасибо!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...