2012-09-05 56 views
0

我需要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’发现

谢谢!

回答

1

我是libffi的作者。 pkg-config应该找到它。你在做什么系统?你的系统上的任何位置有libffi.pc文件吗?