PDA

View Full Version : سوال: کد CMakeLists.txt برای استفاده از gtk



robotic
سه شنبه 30 اردیبهشت 1393, 21:14 عصر
توی فایل CMakeLists.txt چه بنویسم که کتابخانه های gtk را شناسایی کند؟

یک نمونه تو نت پیدا کردم اما کار نمی کند


cmake_minimum_required(VERSION 2.8)

project(gt)

find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
INCLUDE_DIRECTORIES({GTK3_INCLUDE_DIRS})
link_directories(${GTK3_LIBRARY_DIRS})
add_definitions(${GTK3_CFLAGS_OTHER})

add_executable(gt main.cpp)
TARGET_LINK_LIBRARIES(gt ${GTK3_LIBRARIES})

لازم به ذکر است هر دو فایل زیر موجود است


/usr/include/gtk-2.0/gtk/gtk.h
/usr/include/gtk-3.0/gtk/gtk.h

بعضی جاها گفته بودند libgtk-3-dev را نصب کنم. که قبلا نصب کرده بودم


$ sudo apt-get install libgtk-3-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libgtk-3-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.

در تمام موارد فوق ارور زیر را می دهد


$ make
Scanning dependencies of target gt
[100%] Building CXX object CMakeFiles/gt.dir/main.cpp.o
/home/robotics/cv/gt/main.cpp:2:21: fatal error: gtk/gtk.h: No such file or directory
#include <gtk/gtk.h>
^
compilation terminated.
make[2]: *** [CMakeFiles/gt.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/gt.dir/all] Error 2
make: *** [all] Error 2

robotic
چهارشنبه 31 اردیبهشت 1393, 12:30 عصر
با سعی و خطا به نتیجه زیر رسیدم. گفتم نویسم شاید به درد کسی دیگری نیز خورد


cmake_minimum_required(VERSION 2.8.12)

project(gt)

find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
add_definitions(`pkg-config gtk+-3.0 --cflags`)
add_executable(gt main.cpp)
add_definitions(`pkg-config gtk+-3.0 --libs`)
TARGET_LINK_LIBRARIES(gt ${GTK3_LIBRARIES})