我需要 libffi 来构建我的 C++ 项目。问题是不存在用于查找 libffi 的预制脚本,并且 ffi.h 位于奇怪的位置,具体取决于库的版本和 Linux 发行版。
这是我的尝试:
# 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() 不会递归搜索。如何做得更好?
我尝试使用 CMake 的 pkg-config 模块,但 pkg-config 也找不到它。
[ethon@Fleckstation 论文]$ pkg-config --cflags libffi 在 pkg-config 搜索路径中找不到包 libffi。也许您应该将包含 `libffi.pc' 的目录添加到 PKG_CONFIG_PATH 环境变量中没有找到包 'libffi'
谢谢!