2012-04-30 6 views
6

Cố gắng biên dịch thư viện trong Ubuntu bằng CMake và một trong các tệp bao gồm glib.h. Gói được cài đặt và glib.h nằm trong số /usr/include/glib-2.0/glib.h.Bao gồm glib.h trong dự án CMake

Tôi đã thêm phần sau nhưng trình biên dịch vẫn không thể tìm thấy glib.h.

FIND_PACKAGE(glib-2.0) 
IF (glib-2.0_FOUND) 
    INCLUDE_DIRECTORIES(${glib-2.0_INCLUDE_DIR}) 
ENDIF() 

Bất kỳ ai cũng biết tôi nên tìm gói nào?

đang thực tế mà tôi đã kết thúc sử dụng là

find_package(PkgConfig REQUIRED) 
pkg_check_modules(GLIB_PKG glib-2.0) 

if (GLIB_PKG_FOUND) 
    message(Found glib-2.0) 
include_directories(${GLIB_PKG_INCLUDE_DIRS}) 

Trả lời

3

Tôi đề nghị bạn đi qua liên kết: How package finding works.

Để tham khảo, bạn có thể xem số CMake Module này để tìm glib2.

Điểm mấu quan tâm của bạn ở đây là:

find_path(GLIB_INCLUDE_DIR NAMES glib.h PATH_SUFFIXES glib-2.0) 

tôi đề nghị bạn sao chép module này trong thư mục <project root>/cmake/ của bạn. Và, sau đó sử dụng find_package trong tệp gốc CMakeLists.txt của bạn.

+1

Thứ hai nếu liên kết bị hỏng. –

+0

Có, liên kết bị hỏng. Tôi thực sự muốn xem ví dụ về mô-đun CMake – Sean

+0

Tôi tin rằng đây có thể là https://github.com/gammu/gammu/blob/master/cmake/FindGlib.cmake –