Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search GNU能让函数找到库吗?_Search_Makefile - Fatal编程技术网

Search GNU能让函数找到库吗?

Search GNU能让函数找到库吗?,search,makefile,Search,Makefile,在GNU make中是否有一种简单的方法来构造一个if块,该块可以识别库(或者更好的是,头文件!)是否安装在标准搜索目录中 我有一组相当简单的单元测试,由一个简短的Makefile(无autoconf、CMake等)构建,我希望能够在多个平台上捆绑构建。其中一些平台是集中管理的集群。 我的一个测试依赖于用户可安装的库(libmemcached),该库可能在集群上不可用 我可以通过构建一个CMake或autoconf系统来做这类事情,但是这个项目(四个单元测试和一个包含七个类的“库”)似乎不够大,

在GNU make中是否有一种简单的方法来构造一个if块,该块可以识别库(或者更好的是,头文件!)是否安装在标准搜索目录中

我有一组相当简单的单元测试,由一个简短的Makefile(无autoconf、CMake等)构建,我希望能够在多个平台上捆绑构建。其中一些平台是集中管理的集群。 我的一个测试依赖于用户可安装的库(libmemcached),该库可能在集群上不可用

我可以通过构建一个CMake或autoconf系统来做这类事情,但是这个项目(四个单元测试和一个包含七个类的“库”)似乎不够大,无法保证它的正确性。我脑海中的画面是这样的

ifneq (,$(lib-exists -lmemcached))
  LIBSRC += MemCDIndex.cc
  SRC += memcd-index.cc
  LDLIBS += -lmemcached
endif

其中LIBSRC和SRC在我的Makefile中定义,列出了相关的源文件,以及“lib exists”是我试图找到的函数。

如果库安装了
pkg config
/
.pc
文件,那么您可以询问
pkg config
是否存在,并在make条件中使用它。听起来像:我想从Autoconf或CMake获取功能,但不想使用它。这些工具的存在和使用是有原因的。如果它不符合您的需要,您可能希望使用一些手动设置的局部变量。或者创建一个小的Autoconf项目,添加要检查和检查生成的配置脚本的功能。也许你们可以借用部分剧本。谢谢你们!由于我的情况仅限于Unix ish系统(Linux和MacOSX),因此我将更详细地介绍pkg配置。您希望Autoconf/CMake提供此功能是对的,但不采用完整的额外层。如果库安装了
pkg config
/
.pc
文件,那么您可以询问
pkg config
是否存在,并在make条件中使用它。听起来像:我想从Autoconf或CMake获得功能,但不想使用它。这些工具的存在和使用是有原因的。如果它不符合您的需要,您可能希望使用一些手动设置的局部变量。或者创建一个小的Autoconf项目,添加要检查和检查生成的配置脚本的功能。也许你们可以借用部分剧本。谢谢你们!由于我的情况仅限于Unix ish系统(Linux和MacOSX),因此我将更详细地介绍pkg配置。您希望Autoconf/CMake提供此功能是对的,但没有采用完整的额外层。