2015-03-04 24 views
8

Bazı paketleri (find_package() kullanarak) bulamayan bir cmake dosyası hata ayıklanıyor. find_package(), aslında paketleri aradığında ne yapar ve komut satırı çağrısı ile (cmake çağırmadan) simüle edebilir miyim?Cmake'in find_package komut satırı eşdeğeri?

cevap

14

Evet ve evet!

1. find_package işe yarar: documentation of find_package() itibaren

:

CKağıt CKağıt enstalasyonu takip CMAKE_MODULE_PATH içinde Find.cmake adlı bir dosyayı arar. Dosya bulunursa, CMake tarafından okunur ve işlenir.

Linux'ta

, varsayılan komut genellikle burada bulunur: komut satırında find_package nasıl kullanılır

ls /usr/share/cmake*/Modules/Find*.cmake 

2.:

# cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=EXIST 
Boost found 

# cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=COMPILE 
-I/usr/include 

# cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=LINK 
    -rdynamic 
+1

Sweet! Teşekkür ederim! – Phonon