J'ai besoin de libffi pour construire mon projet C++. Le problème est qu'il n'existe aucun script premade pour trouver libffi et ffi.h est situé à des emplacements étranges en fonction de la version de la bibliothèque et de la distribution Linux.Trouver des fichiers d'en-tête libffi avec CMake
Le est ma tentative:
# Look for the header file.
Find_Path(LIBFFI_INCLUDE_DIR NAMES ffi.h)
Mark_As_Advanced(LIBFFI_INCLUDE_DIR)
# Look for the library.
Find_Library(LIBFFI_LIBRARY NAMES
ffi
)
Mark_As_Advanced(LIBFFI_LIBRARY)
# handle the QUIETLY and REQUIRED arguments and set LIBFFI_FOUND to TRUE
# if all listed variables are TRUE
Include(FindPackageHandleStandardArgs)
Find_Package_Handle_Standard_Args(libffi DEFAULT_MSG
LIBFFI_LIBRARY LIBFFI_INCLUDE_DIR)
If(LIBFFI_FOUND)
SET(LIBFFI_LIBRARIES ${LIBFFI_LIBRARY})
SET(LIBFFI_INCLUDE_DIRS ${LIBFFI_INCLUDE_DIR})
Endif(LIBFFI_FOUND)
Mais il ne fonctionne évidemment pas parce que find_path() ne recherche pas récursivement. Comment le faire mieux?
J'ai essayé d'utiliser le module pkg-config de CMake, mais pkg-config ne le trouve pas non plus.
[Ethon @ Papier Fleckstation] $ pkg-config --cflags libffi Package libffi n'a pas été trouvé dans le chemin de recherche pkg-config. Peut-être que vous devez ajouter le répertoire contenant `libffi.pc » à la PKG_CONFIG_PATH variable d'environnement Aucun package 'libffi' trouvé
Merci!