GTK+-3.0-dev Нет такого файла или каталога при компиляции (Linux Mint/gcc)
Я беру свой первый набег на C/C++/GTK, и у меня возникают проблемы с компиляцией базовой программы GTK+. У меня есть sample.c. Если я попытаюсь скомпилировать его с
$ gcc sample.c -o sample 'pkg-config --cflags --libs gtk+-3.0'
Он жалуется на отсутствие файла или каталога.
Package gtk+3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+3.0' found
Для устранения неполадок я попытался:
$ gcc sample.c -o sample
Я получаю gtk/gtk.h Нет такого файла или каталога, очевидно.
Когда я пытаюсь
$ pkg-config --cflags gtk+-3.0
я получил
-pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12
а также
$ pkg-config --libs gtk+-3.0
дает мне это:
Package gtk+3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+3.0' found
Я использую свежую установку Mint 15, и у меня есть libgtk-3-dev, установленный через менеджер пакетов, зависимости удовлетворены. Я знаю, что это за основа, но я не могу понять, что мне нужно делать.
РЕДАКТИРОВАТЬ Начиная с вышеприведенного поста, я установил пакет gtk+3.0 (устанавливает кучу других пакетов), и теперь я получаю это:
$ pkg-config --libs gtk+-3.0
-lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0
теперь я получаю ошибку
gcc: error: pkg-config --libs --cflags gtk+-3.0: No such file or directory
РЕДАКТИРОВАТЬ 2: после долгого прикручивания, я выполнил эту команду
$ pkg-config --libs --cflags gtk+-3.0
и скопировал вывод в следующую команду:
$ gcc simple.c -o simple {pasted output of successful pkg-config command}
и программа скомпилирована нормально.
$ gcc simple.c -o simple 'pkg-config --libs --cflags gtk+-3.0'
все еще не работает, хотя, я получаю следующую ошибку:
gcc: error: pkg-config --libs --cflags gtk+-3.0: No such file or directory
Решения?
2 ответа
Хорошо, ребята на linuxquestions выправили меня.
`! = '(обратный кавычек не совпадает с одинарной кавычкой)
Я должен был использовать обратные кавычки вместо кавычек, также мог бы использовать $()
$ gcc simple.c -o simple $(pkg-config --args)
Я пойду читать руководство по командной строке...:/
Что касается первой проблемы (почему pkg-config --libs gtk+-3.0) дал мне "пакет gtk+3.0 не найден в пути поиска pkg-config", я думаю, что у меня должна быть установлена только libgtk-3-dev а не установленный gtk+3.0.
все еще не работает, хотя, я получаю следующую ошибку:
gcc: error: pkg-config --libs --cflags gtk+-3.0: No such file or directory
Замените свой
$ gcc simple.c -o simple 'pkg-config --libs --cflags gtk+-3.0'
с
$ gcc simple.c -o simple
`pkg-config --libs --cflags gtk+-3.0
`