我需要libffi来构建我的C++项目。问题在于没有预制脚本来查找libffi,ffi.h位于奇怪的位置,具体取决于库的版本和Linux发行版。用CMake查找libffi头文件
的是我的尝试:
# 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)
但它显然是行不通的,因为Find_Path()不recursivly搜索。 如何做得更好?
我试过使用CMake的pkg-config模块,但是pkg-config也找不到它。
[ethon @ Fleckstation纸张] $ pkg配置--cflags libffi包装libffi 在pkg配置的搜索路径没有被发现。也许你应该添加 目录包含`libffi.pc”到PKG_CONFIG_PATH 环境变量不包‘libffi’发现
谢谢!