Après avoir fait quelques recherches et un indice de la @OlivierM, j'ai trouvé la réponse.
Voici les étapes: Si PKG_CONFIG_PATH n'est pas défini, CMAKE_PREFIX_PATH peut être configuré pour trouver les fichiers .pc
$
set(CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/libs/opencv-install/lib/pkgconfig")
Méthode d'utiliser pkgconfig. En supposant que PKG_CONFIG_PATH est déjà défini, sinon défini en utilisant ENV.
set(ENV{PKG_CONFIG_PATH} "${CMAKE_SOURCE_DIR}/libs/opencv-install/lib/pkgconfig")
Suivant
find_package(PkgConfig REQUIRED)
pkg_search_module(PKG_OPENCV REQUIRED opencv) # this looks for opencv.pc file
S'il vous plaît noter que la variable PKG_OPENCV peut être quoi que ce soit son nom. Quoi que ce soit est nommé son utilisé comme un préfixe. par exemple si vous nommez ABCD, alors les répertoires d'inclusion seront ABCD_INCLUDE_DIRS
Les variables PKG_OPENCV_INCLUDE_DIRS et PKG_OPENCV_LIBRARIES contiennent respectivement les fichiers d'en-tête (étape de compilation) et les bibliothèques (étape de liaison).
Une chose très importante que j'ai remarquée était que la variable PKG_OPENCV_LIBRARIES fournit juste les bibliothèques et pas le chemin de bibliothèque pendant l'étape de liaison. Pour utiliser le chemin de la bibliothèque aussi bien dans une commande, on doit utiliser
PKG_OPENCV_LDFLAGS
Cette variable contient le chemin de la bibliothèque, ainsi que toutes les bibliothèques répertoriées dans le fichier de configuration du package.
pour exmaple:
include_directories(${PKG_OPENCV_INCLUDE_DIRS})
target_link_libraries (FINAL_BINARY ${PKG_OPENCV_LDFLAGS})
Je ne vois pas pkg_search_module dans votre code. comment cherchez-vous les modules? – infoclogged
Il s'agit en fait d'un fichier commun que j'ai créé pour prendre en charge la compilation croisée. J'ai utilisé 'find_package' dans le haut' CMakeLists.txt'. Voir [ici] (https://github.com/labapart/gattlib/blob/master/CMakeLists.txt#L30) – OlivierM