Автор Гілка: Компіляція програм GTK+  (Прочитано 3919 раз)

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Я написав програму на GTK+ в openSuSE і хочу щоб вона працювала у буть-якому лінуксі, але виникла проблема у Федорі вона хоче бібліотеку libexpat.so.1 у myLinux3.1 хоче ще якусь іншу, коли збирати із сирців то у Федорі вона збирається без проблем, запускається і працює, а у myLinux не хоче збиратись викидає помилки компіляції там де їх насправді немає. Чи можна якось статично зібрати програму, щоб раз відкомпільована програма, наприклад у мене на openSuSE, виконувалась потім усюди? Наперед вдячний за відповідь.
« Змінено: 2007-09-17 01:35:14 від markus »
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: Компіляція програм GTK+
« Відповідей #1 : 2007-09-17 01:44:45 »
По-перше, статична збірка - це дуже поганий тон. Але якщо дуже хочеться, встановіть статичні gtk-ліби.

По-друге, якщо не знаходить бібліотеку libblabla.so.N - значить, її там немає, чого бути не може - libgtk-x11-2.0.so має бути налінкована на expat. Тричі перевірте інсталяцію gtk та шляхи, вказані компілятору. Щодо того, що не збирається в myLinux - щось мені підказує, що в сюзі у вас gcc-4.1, коли в myLinux майже напевне gcc-3 - копати сюди. Не бачивши коду більше нічого сказати не можу, окрім того, що явно є дефекти в реалізації.

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Компіляція програм GTK+
« Відповідей #2 : 2007-09-17 15:48:29 »
Оригінальні фокуси...
Ви хоч pkg-config при компіляції використовували  ;)
Переконайтесь що, на системі, де компілите, стоїть gtk...-devel... - без нього дідька закомпілите  ;D
Якщо gtk з сирців зібраний - теж порядок.
А інші проги під gtk запускаються?
Дайте вивід про помилки - мене телепатія підводить  ;D

GTK навіть під офтопіцком працює...
Чому ви не запитуєте : "чи можна під лінуксом закомпілити статичну програму під GTK, щоб вона пішла під віндою" ?  ;D ;D ;D :o 8-)
« Змінено: 2007-09-17 15:52:07 від serg_ik »
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Re: Компіляція програм GTK+
« Відповідей #3 : 2007-09-17 16:32:17 »
Ось сирці програми. Тут щоб довго не гратись із проектом я всі функції кинув у один файл main.c.
Пане Сергій Лисовенко у мене хоч руки не з того місця ростуть, але голова вчора ніби росла із плеч :-) .
Цитата
Ви хоч pkg-config при компіляції використовували  
Угу
Цитата
Переконайтесь що, на системі, де компілите, стоїть gtk...-devel... - без нього дідька закомпілите  
Якщо gtk з сирців зібраний - теж порядок.  
А інші проги під gtk запускаються?
Усе працює.

Цитата
Чому ви не запитуєте : "чи можна під лінуксом закомпілити статичну програму під GTK, щоб вона пішла під віндою" ?
А xlib теж працює під віндою? :D.
« Змінено: 2007-09-17 16:36:08 від markus »
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: Компіляція програм GTK+
« Відповідей #4 : 2007-09-17 16:53:57 »
Поки розбиратись докладно немає часу. Не збирається з gcc-3.2.3 супроти gtk+-2.10. Бінарник, природно, не запускається, йому не вистачає ліби з X.org (в мене тут зараз XFree).

А код могли б і почистити, та й коментарі дописати, перед тим як показувати на публіку - зрозуміти, що саме у вас там, важко.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Компіляція програм GTK+
« Відповідей #5 : 2007-09-17 17:30:52 »
gcc-4.1.1 (Fedora 6) — скомпілювалося. :-/
[Fedora Linux]

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: Компіляція програм GTK+
« Відповідей #6 : 2007-09-17 17:33:21 »
gcc-4.1.1 (Fedora 6) — скомпілювалося. :-/
Я бачив, як код, що збирається на gcc-3.2 начисто відмовлявся збиратись а 3.4=) Версії компіляторів, зараза...

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Re: Компіляція програм GTK+
« Відповідей #7 : 2007-09-17 18:45:12 »
Ось виправлена версія. Хоча і далі не компілиться. Пише що XK_K - не об'явлена, хоча відповідний файл заголовок включений. Пробував компілити на Manrake 10.2, openSuSE10.2, myLinux3.1 з них успішно зібралось і запустилось лише на openSuSE10.2, знайомий збирав на Fedora 6 - зібралось але не працює так як треба - не ловиться клавіші Alt+K правда я не питав може в нього цю комбінацію викоритсовує якась програма.
Забув сказати що моя програма робить - висить в пам'яті і чекає на нажаття певної комбінації клавіш( тут Alt+K ) після чого відкриває вікно куди вводиться стрічка, яка потім посилається активному вікну. (Це окремий модуль цілої програми).
« Змінено: 2007-09-17 18:56:15 від markus »
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Компіляція програм GTK+
« Відповідей #8 : 2007-09-19 15:08:04 »
Цитата
// тут викидає помилку компіляції: назнає чогось що таке XK_K хоча у openSuSE 10.2 знає
Скоріше за все в сюзі якийсь не той ГТК  ;) подивіться її заголовкові файли і знайдіть цей бісів XK_K .
Наприклад, заходите десь в /usr/lib/gtk-2.0/include (нуй знайшли куди втулити заголовкові файли в федорі -3), одним словом наберете pkg-config --cflags gtk+-2.0 і все стане ясно  ;) далі наберете щось типу find -name \*.h -type f -exec grep XK_K \{\} \;
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Re: Компіляція програм GTK+
« Відповідей #9 : 2007-09-19 22:34:53 »
Знайшов причину. Дам пояснення, може хтось займається подібною проблемою.
Не хотіло компілити на компіляторі 3.х.х тому, що я використовував функцію g_slice_new0 із нового GLib. Ця функція створює елементи для списку GList, після заміни на g_malloc0 все запрацювало. Додам на SuSE 10.1 із gcc4  теж не компілило через цю ж причину, але там писало чітко що g_slice_new0 неоголошена, а gcc3 писав що в стрічні присутня синтаксична помилка, погодьтеся: догадатись, що відсутня функція - складно.
Тепер щодо XK_K коли я відкрив файл keysymdef.h то побачив що об’явлення XK_K як і XK_А та інших відбувається за умови коли об’явлено #define XK_LATIN1, а Mandrake і myLinux через те, що стоїть українська локаль, мабуть, цього не зроблено (правда, може я і помиляюсь). Вихід бачу наступний отримувати коди клавіш засобами ГТК, а потім переводити їх в коди клавіш xLib - це дозволить переносимість програми на інші лінукси.
Дякую усім, що наставили мене на шлях істинний. :)
« Змінено: 2007-09-19 22:36:28 від markus »
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній DiezelMax

  • Новачок
  • *
  • дописів: 36
  • Карма: +0/-0
  • Що новенького?
Re: Компіляція програм GTK+
« Відповідей #10 : 2007-09-21 12:13:54 »
2markus
можна взнати в чому пишемо під GTK? самого інтересує, але на С.
Є в когось пропозиції?

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: Компіляція програм GTK+
« Відповідей #11 : 2007-09-21 12:16:59 »
2markus
можна взнати в чому пишемо під GTK? самого інтересує, але на С.
Є в когось пропозиції?
vim і тільки vim=)

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Re: Компіляція програм GTK+
« Відповідей #12 : 2007-09-23 20:27:29 »
2markus
можна взнати в чому пишемо під GTK? самого інтересує, але на С.
Є в когось пропозиції?
Може хтось буде сміятись, але я користуюсь вбудованим редактором Krusader'а, як для написання програми, так і для Makefile . Vim мені чогось не сподобався.  Anjuta - на форумах хвалять, а у мене воно глючить, зависає, вилітає. Більш-менш можна миритись коли створив проект у дизайнері glade а потім імпортував його у  Anjuta. Але таке на практиці рідко використовую, в основному все пишу вручну. Шкода що kdevelop немає повної підримки Gtk+ проектів, хоча можна попробувати імпортувати створені у Glade, особисто я такого не робив.
У мене запитання до програмістів: чи багато хто із Вас користуються утилітами automake i autoconf вручну тобто без використання середовищ Anjuta чи KDevelop?
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній DalekiyObriy

  • Літератор
  • ******
  • дописів: 1929
  • Карма: +5/-0
Re: Компіляція програм GTK+
« Відповідей #13 : 2007-09-24 05:42:56 »
У мене запитання до програмістів: чи багато хто із Вас користуються утилітами automake i autoconf вручну тобто без використання середовищ Anjuta чи KDevelop?
якщо є така можливість, я б рекомендував cmake заміть важкуватих autotools
Fedora 35 (x86-64)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Компіляція програм GTK+
« Відповідей #14 : 2007-09-24 13:10:28 »
У мене запитання до програмістів: чи багато хто із Вас користуються утилітами automake i autoconf вручну тобто без використання середовищ Anjuta чи KDevelop?

В мене якось не склалося з конфігуратором проекту в Anjuta а KDevelop я не пробував. Мені простіше руками наклепати configure.ac + make.am для тих невеличких домашніх проектів які я роблю для себе: http://www.niksula.hut.fi/~mkomu/docs/autohowto.html .

А так по роботі то я в основному ant-ом користуюся. Його немає на всіх unix-ах але нам і не треба.
« Змінено: 2007-09-24 13:13:33 від lvm »
[Fedora Linux]