Программа GTK3 больше не компилируется - GCC «неопределенная ссылка» во время ссылки - PullRequest
0 голосов
/ 16 ноября 2011

Так что я с удовольствием изучал программирование на GTK + с 3.0 в Ubuntu 11.04 и даже запустил работающую программу-линейку.Он отлично скомпилирован с моим make-файлом.

Я отнял у него некоторое время, обновился до 11.10 и теперь вернулся к нему.Но, увы, когда я пытаюсь собрать программу, я получаю много ошибок «неопределенная ссылка» почти на каждый вызов gtk в моей программе.Компиляция в порядке - проблема в момент ссылки.

Проект можно найти здесь: https://github.com/zjmichen/ruler

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Я протестировал его, и он прекрасно скомпилирован.

superman@superman-mint ~/work/zjmichen-ruler-e783fe1 $ make
gcc -c -Wall `pkg-config --cflags --libs gtk+-3.0` main.c
gcc -c -Wall `pkg-config --cflags --libs gtk+-3.0` window.c
gcc -c -Wall `pkg-config --cflags --libs gtk+-3.0` graphics.c
gcc -c -Wall `pkg-config --cflags --libs gtk+-3.0` mouse.c
gcc `pkg-config --cflags --libs gtk+-3.0` main.o window.o graphics.o mouse.o -o zruler
superman@superman-mint ~/work/zjmichen-ruler-e783fe1 $

Но это было на Linux Mint.Здесь вы получите аргументы, выданные pkg-config

-pthread -DGSEAL_ENABLE -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-3.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pixman-1  -pthread -L/usr/lib/x86_64-linux-gnu -lgtk-3 -lgdk-3 -latk-1.0 -lcairo-gobject -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 

Я также провел быстрый тест на Ubuntu 11.10, и он действительно не компилируется.Сегодня вечером я посмотрю получшекоторые связаны.Я понятия не имею, почему эта проблема возникает в новом Ubuntu.Может быть, это потому, что это другая версия GCC.На моем Linux Mint GCC это версия 4.5.2 на Ubuntu 11.10 это 4.6.1

0 голосов
/ 16 ноября 2011

К сожалению, в настоящее время у меня нет доступа к работающей машине Linux с установленным GTK3.0, но, глядя на ваш код, я заметил включение X11 / xlib.h в main.c.Поскольку вы нигде не используете код X11 в своем коде и используете «pkgconfig ... gtk + -3.0» вместо gtk + -X11-3.0, я предполагаю, что вы можете удалить этот оператор включения.Если вам нужны библиотеки X11, убедитесь, что они указаны в флагах компилятора.Я надеюсь, что это помогает:)

...