在CMake中替换AC_CHECK_LIB

时间:2017-03-13 13:51:44

标签: cmake automake

我正在将一个项目从Autotools转换为CMake。 我们有一个configure.ac文件,声明为:

AC_CHECK_LIB([gsuffix], [gsuffix_create], [], AC_MSG_ERROR([Can not find gsuffix library]))

我想将其替换为cmake,并且不确定如何(它没有pkg-config) 我需要的是:

  • 检查libgsuffix是否存在并找到路径。
  • 检查libgsuffix中存在gsuffix_create
  • 将-lgsuffix添加到编译中 - 我想我知道该怎么做。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

没有一对一翻译。通常,使用CMake,您不会检查每个标头和每个库是否真正有效。如果你找到了这个文件,你就会认为它会起作用。

  • 也许find_package适合您,因为某人已经编写了这样的测试,或者您的库提供了相应的配置文件。

  • Find_library用于查找库,但按名称。

  • 如果您确实需要检查您的图书馆是否有效,请使用CheckLibraryExists

答案 1 :(得分:0)

如前所述,无论如何都没有找到用一个命令执行此操作。

我没有足够的时间来理解如何做一些完全通用的事情,所以我可以给我的骨架找一个FindGSUFFIX.cmake:

FIND_LIBRARY(GSUFFIX_LIBRARY NAMES gsuffix)

INCLUDE(CheckLibraryExists)
CHECK_LIBRARY_EXISTS(gsuffix gsuffix_create ${GSUFFIX_LIBRARY} GSUFFIX_VERIFIED)

# Handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if all listed variables are TRUE.
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GSUFFIX DEFAULT_MSG GSUFFIX_LIBRARY GSUFFIX_VERIFIED)

MARK_AS_ADVANCED(GSUFFIX_LIBRARY)