Closed stle85 closed 11 years ago
инклуды для gtk2 подключаются вот здесь https://github.com/scorpp/db-vk/blob/master/CMakeLists.txt#L26 точно так же чуть ниже - для gtk3. должно работать. что пишет об ошибке?
cmake отрабатывает на ура. Но при компиляции сыпется на том что не может найти инклуд
Решил проблему только выше описаным способом.
login@machine:/tmp/db-vk$ mkdir build
login@machine:/tmp/db-vk$ cd build/
login@machine:/tmp/db-vk/build$ cmake ../
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found CURL: /usr/lib/i386-linux-gnu/libcurl.so
-- checking for module 'json-glib-1.0'
-- found json-glib-1.0, version 0.14.2
-- checking for module 'gtk+-2.0'
-- found gtk+-2.0, version 2.24.10
-- checking for module 'gtk+-3.0'
-- found gtk+-3.0, version 3.4.2
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/db-vk/build
login@machine:/tmp/db-vk/build$ make
Scanning dependencies of target vkontakte_gtk2
[ 12%] Building C object CMakeFiles/vkontakte_gtk2.dir/vkontakte.c.o
/tmp/db-vk/vkontakte.c:4:21: фатальная ошибка: gtk/gtk.h: Нет такого файла или каталога
компиляция прервана.
make[2]: *** [CMakeFiles/vkontakte_gtk2.dir/vkontakte.c.o] Ошибка 1
make[1]: *** [CMakeFiles/vkontakte_gtk2.dir/all] Ошибка 2
make: *** [all] Ошибка 2
Linux machine 3.2.0-36-generic #57-Ubuntu SMP Tue Jan 8 21:41:24 UTC 2013 i686 athlon i386 GNU/Linux
покажи плз
VERBOSE=true make
ubuntu 12.10?
12.04.1 LTS
/usr/bin/cmake -H/tmp/db-vk -B/tmp/db-vk/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /tmp/db-vk/build/CMakeFiles /tmp/db-vk/build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Вход в каталог `/tmp/db-vk/build'
make -f CMakeFiles/vkontakte_gtk2.dir/build.make CMakeFiles/vkontakte_gtk2.dir/depend
make[2]: Вход в каталог `/tmp/db-vk/build'
cd /tmp/db-vk/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /tmp/db-vk /tmp/db-vk /tmp/db-vk/build /tmp/db-vk/build /tmp/db-vk/build/CMakeFiles/vkontakte_gtk2.dir/DependInfo.cmake --color=
Dependee "/tmp/db-vk/build/CMakeFiles/vkontakte_gtk2.dir/DependInfo.cmake" is newer than depender "/tmp/db-vk/build/CMakeFiles/vkontakte_gtk2.dir/depend.internal".
Dependee "/tmp/db-vk/build/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/tmp/db-vk/build/CMakeFiles/vkontakte_gtk2.dir/depend.internal".
Scanning dependencies of target vkontakte_gtk2
make[2]: Выход из каталога `/tmp/db-vk/build'
make -f CMakeFiles/vkontakte_gtk2.dir/build.make CMakeFiles/vkontakte_gtk2.dir/build
make[2]: Вход в каталог `/tmp/db-vk/build'
/usr/bin/cmake -E cmake_progress_report /tmp/db-vk/build/CMakeFiles 1
[ 12%] Building C object CMakeFiles/vkontakte_gtk2.dir/vkontakte.c.o
/usr/bin/gcc -Dvkontakte_gtk2_EXPORTS -g -Wall -fPIC -I/usr/include/json-glib-1.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/tmp/db-vk -pthread -o CMakeFiles/vkontakte_gtk2.dir/vkontakte.c.o -c /tmp/db-vk/vkontakte.c
/tmp/db-vk/vkontakte.c:4:21: фатальная ошибка: gtk/gtk.h: Нет такого файла или каталога
компиляция прервана.
make[2]: *** [CMakeFiles/vkontakte_gtk2.dir/vkontakte.c.o] Ошибка 1
make[2]: Выход из каталога `/tmp/db-vk/build'
make[1]: *** [CMakeFiles/vkontakte_gtk2.dir/all] Ошибка 2
make[1]: Выход из каталога `/tmp/db-vk/build'
make: *** [all] Ошибка 2
pkg-config --cflags gtk+-2.0
?
что-то косячит... только непонятно, что именно.
через пару недель возможно у меня будет время посмотреть на это поближе
-pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12
т.е. таки cmake потеряшка...
fixed, checked on debian squeeze
Для сборки под Ubuntu 12.04.1 LTS надо указывать пути до include директорий gtk2 и gtk3. Иначе не находятся заголовочные файлы для них.
include_directories(${GTK2_INCLUDE_DIRS}) include_directories(${GTK3_INCLUDE_DIRS})