powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / GTK+ компиляция для Windows
23 сообщений из 23, страница 1 из 1
GTK+ компиляция для Windows
    #39966609
Zankoku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, дамы и господа!

В общем, изобразил недоразумение. Исходный файл: gtk1_port.cpp. На линуксе комплируется без ошибок при помощи g++. Пробую скомпилировать при помощи mingw32 для Windows. Проделал не самый трудный путь по примеру .
На команду:
x86_64-w64-mingw32-g++-win32 gtk1_port.cpp -o executable.exe `pkg-config --cflags --libs gtk+-3.0` -I/usr/include/postgresql
терминал пестрит красным:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
In file included from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9:0,
                 from /usr/include/glib-2.0/glib/gtypes.h:32,
                 from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/gtk-3.0/gdk/gdkconfig.h:13,
                 from /usr/include/gtk-3.0/gdk/gdk.h:30,
                 from /usr/include/gtk-3.0/gtk/gtk.h:30,
                 from gtk1_port.cpp:1:
/usr/include/glib-2.0/glib/gtypes.h: In function ‘gboolean _GLIB_CHECKED_ADD_U64(guint64*, guint64, guint64)’:
/usr/include/glib-2.0/glib/gmacros.h:142:29: error: size of array ‘_GStaticAssertCompileTimeAssertion_0’ is negative
   __attribute__((__unused__))
                             ^
/usr/include/glib-2.0/glib/gmacros.h:232:120: note: in expansion of macro ‘G_GNUC_UNUSED’
 C_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED
                                                                                                         ^~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:423:3: note: in expansion of macro ‘G_STATIC_ASSERT’
   G_STATIC_ASSERT(sizeof (unsigned long long) == sizeof (guint64));
   ^~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/gio/gio.h:46:0,
                 from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /usr/include/gtk-3.0/gdk/gdk.h:32,
                 from /usr/include/gtk-3.0/gtk/gtk.h:30,
                 from gtk1_port.cpp:1:
/usr/include/glib-2.0/gio/gcredentials.h: At global scope:
/usr/include/glib-2.0/gio/gcredentials.h:75:1: error: ‘uid_t’ does not name a type
 uid_t            g_credentials_get_unix_user      (GCredentials    *credentials,
 ^~~~~
/usr/include/glib-2.0/gio/gcredentials.h:79:52: error: ‘uid_t’ has not been declared
                                                    uid_t           uid,
                                                    ^~~~~



Направьте на путь истинный, будьте любезны.
Заранее спасибо
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966618
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zankoku,
Мне кажется устарели все твои ссылки. 2013 год.
Выбор sql-ru - раздельная компиляция под линукс и винду.
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966623
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GTK+ обычно пишут через запятую после Gnome.

Gnome/GTK+ - чисто линуксовый стек графики. Возможно он и позволяет что-то собрать вод Windows
но польза от этого была-бы крайне сомнительна. Слишком большие различия в абстракциях.

Чтоб полностью переносить приложения без глюков в графике (а глюки в графике - всегда
бесят конечного пользователя) надо как-то нифуёво напрячся и написать еще какую-то
прослойку. Ну вот такая есть это Qt. И ее шлифуют и полируют десяток лет. И то не дополировали.
Вот недавно кто-то в форуме жаловался на скорость отрисовки.
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966629
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonGnome/GTK+ - чисто линуксовый стек графики.

Не совсем. Этой библиотеке виджетов сугубо всё равно на какой платформе себя рисовать, всё
равно она использует только примитивы класса "линия", "залитый прямоугольник", "текст".
Как и Qt.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966632
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
"Этой библиотеке виджетов" - а где она официальная для винды?
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966637
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpа где она официальная для винды?

https://www.gtk.org/docs/installations/windows/
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966650
Zankoku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrav
Код: plaintext
1.
2.
/usr/include/glib-2.0/glib/gmacros.h:142:29: error: size of array ‘_GStaticAssertCompileTimeAssertion_0’ is negative
   __attribute__((__unused__))


Поскольку GTK написан на Си, то static_assert им, конечно, недоступен. И приходится пользоваться вот такими фокусами.

Я искренне не понимаю, ну ладно, библиотека написана на Си, но почему не воспользоваться для этого компилятором С++?


x86_64-w64-mingw32-g++-win32 - это же вроде как раз c++?

Но тем не менее, я попробовал и сделал следующее:
x86_64-w64-mingw32-cpp-win32
x86_64-w64-mingw32-cpp
i686-w64-mingw32-cpp-win32
i686-w64-mingw32-cpp

и исполняемый файл получился. Однако, не запускается на Win7:
Код: plaintext
1.
Версия этого файла несовместима с используемой версией Windows. С помощью сведений о системе определите версию программы (32- или 64-разрядную) и обратитесь к издателю программного обеспечения.
Теперь то что не так?)
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966652
Zankoku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrav
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
/usr/include/glib-2.0/glib/gtypes.h: In function ‘gboolean _GLIB_CHECKED_ADD_U64(guint64*, guint64, guint64)’:
/usr/include/glib-2.0/glib/gmacros.h:142:29: error: size of array ‘_GStaticAssertCompileTimeAssertion_0’ is negative
   __attribute__((__unused__))
                             ^
/usr/include/glib-2.0/glib/gmacros.h:232:120: note: in expansion of macro ‘G_GNUC_UNUSED’
 C_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED
                                                                                                         ^~~~~~~~~~~~~
Очевидно, что неправильно настроен проект для кросс-компиляции под Win. Нужно поинтересоваться в исходниках для чего используется макрос ‘G_GNUC_UNUSED’, почему параметр `expr` стал `false` или ноль? Что проверяется с помощью этого макроса? Скорее всего каких-то макросов не хватает в настройках проекта. Или подставлены неправильные пути для инклудов. Т.е. при сборке подставлены пути инклудов для Линукс, а нужно для Виндовс.


На это могу вот что ответить:
echo $PKG_CONFIG_PATH
Вывод:
Код: plaintext
1.
/opt/gtk3-win32/lib/pkgconfig
Попробовал:
x86_64-w64-mingw32-g++-win32 gtk1_port.cpp -o executable-x86-cpp-win32.exe `pkg-config --cflags --libs gtk+-win32-3.0` -I/usr/include/postgresql
Вывод:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Package gtk+-win32-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-win32-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-win32-3.0' found
gtk1_port.cpp:1:21: fatal error: gtk/gtk.h: Нет такого файла или каталога
 #include <gtk/gtk.h>
                     ^
compilation terminated.

хотя
/opt/gtk3-mingw32/lib/pkgconfig$ ls
вывод:
Код: plaintext
1.
2.
3.
4.
5.
6.
atk.pc            cairo-png.pc         expat.pc           gdk-win32-3.0.pc       gmodule-no-export-2.0.pc  libpcrecpp.pc    libxml-2.0.pc  zlib.pc
cairo-fc.pc       cairo-ps.pc          fontconfig.pc      gio-2.0.pc             gobject-2.0.pc            libpcre.pc       pangocairo.pc
cairo-ft.pc       cairo-svg.pc         freetype2.pc       gio-windows-2.0.pc     gthread-2.0.pc            libpcreposix.pc  pangoft2.pc
cairo-gobject.pc  cairo-tee.pc         gail-3.0.pc        glib-2.0.pc            gtk+-3.0.pc               libpng15.pc      pango.pc
cairo.pc          cairo-win32-font.pc  gdk-3.0.pc         gmodule-2.0.pc          gtk+-win32-3.0.pc          libpng.pc        pangowin32.pc
cairo-pdf.pc      cairo-win32.pc       gdk-pixbuf-2.0.pc  gmodule-export-2.0.pc  libffi.pc                 libtiff-4.pc     pixman-1.pc
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966675
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Ругань вычищаем.... Рецидив будет награжден баном
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966677
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
GTK+ обычно пишут через запятую после Gnome.

Gnome/GTK+ - чисто линуксовый стек графики. Возможно он и позволяет что-то собрать вод Windows
но польза от этого была-бы крайне сомнительна. Слишком большие различия в абстракциях.
Вообще-то, Gnome это оконная оболчка. Под винду ее... ну в принципе наверное можно собрать, но зачем?
А вот GTK+ вполне себе прекрасно живет на винде. Но и собирать приложения лучше прямо на винде. Ставишь себе MinGW/MSYS2 и проблем не будет... Ну если у тебя уже есть MinGW/TDM - тогда придется повозиться с разведением их по углам.

mayton

Чтоб полностью переносить приложения без глюков в графике (а глюки в графике - всегда
бесят конечного пользователя) надо как-то нифуёво напрячся и написать еще какую-то
прослойку. Ну вот такая есть это Qt. И ее шлифуют и полируют десяток лет. И то не дополировали.
Вот недавно кто-то в форуме жаловался на скорость отрисовки.
Если приложение написано хорошо, то проблем со скоростью отрисовки нет. В качестве примера возьми GIMP - самая пожалуй известная программа написанная на GTK+.
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966680
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то есть у меня сомнения что преведмир на GTK+ соберётся по win без пляски с бубном.
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966681
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Что то есть у меня сомнения что преведмир на GTK+ соберётся по win без пляски с бубном.

у меня тоже.
Но тут ТС, вот и увидим.
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966682
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlВ качестве примера возьми GIMP - самая пожалуй известная программа написанная на GTK+.

Да. Кроме всего прочего она известна как раз тормознутостью и "авторским" интерфейсом. Но
пример плохой она не поэтому, а потому что это графический редактор, то есть вещь,
заведомо мало нуждающаяся в виджетах. С тем же успехом можно он может быть на Unreal Engine.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966693
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Что то есть у меня сомнения что преведмир на GTK+ соберётся по win без пляски с бубном.
Зря. У меня все собиралось без проблем.
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966697
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
+1
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966712
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ок. Приду с вопросами.
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39966728
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Что то есть у меня сомнения что преведмир на GTK+ соберётся по win без пляски с бубном.

Я как-то пытался gtk совместно с D Language использовать, под Win.
Что-то (не помню сейчас) глючило, и вроде бы в самой новой версии gtk сие этот глюк был исправлен. "Самую новую" никак не получалось собрать под Win, я обратился в "комьюнити gtk". Там тако-о-ой хай поднялся!
Мне объяснили, что пользователи "gtk под Win" - не просто бесполезные халявщики, они вредители, так как <причины>.
Ну, я и не стал дальше разбираться.
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39967515
Zankoku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И снова здравствуйте. В общем поднял виртуалку. В нее воткнул MSYS2. все что надо скачал, поставил, запустил. в терминале: x86_64-w64-mingw32-g++ gtk1_port -o gtk2.exe `pkg-config --cflags --libs gtk+-3.0` -I/mingw64/include/postgresql -lpq при запуске ошибка: 0xc000007b

так же пробовал использовать gtk+-win32-3.0.pc

что делать? куда копать?
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39967518
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот щас знатоки ГТК под Вин тебе помогут.
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39967523
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zankokuчто делать? куда копать?

Смотреть зависимости. Обнаружить и исправить среди них библиотеку с неправильной разрядностью.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39968930
Zankoku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Победил! Но не все так как хотелось бы. При запуске - открывается окно командной строки с сообщением (скрин).
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39969713
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zankoku
Пробую скомпилировать при помощи mingw32 для Windows.
Ухты, а так можно было?! А я тут только собирался начать спрашивать, на чём делали UI у Blender3D, и есть ли смысл делать так же
ъъъъъ
Я как-то пытался gtk совместно с D Language использовать, под Win.
И даже так можно было??
Zankoku
При запуске - открывается окно командной строки с сообщением (скрин).
А под дебагом посмотреть?
...
Рейтинг: 0 / 0
GTK+ компиляция для Windows
    #39983249
Zankoku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CEMb,

авторА под дебагом посмотреть?
Я пишу в атоме, ни про какие дебаги не знаю
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / GTK+ компиляция для Windows
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]