gpt4 book ai didi

c++ - 在 Autotools 中检查外部包

转载 作者:搜寻专家 更新时间:2023-10-31 01:05:39 24 4
gpt4 key购买 nike

我想检查 google sparsehash 是否存在使用 Autotools 在我的 C++ 程序中打包。

这是一个最小的 configure.ac:

AC_PREREQ([2.69])
AC_INIT([myprog], [1.0], [adress@email.com])
AC_CONFIG_SRCDIR([main.cpp])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([foreign -Wall -Werror])

AC_PROG_CXX
AC_PROG_CC
AC_CHECK_HEADERS([google/sparse_hash_map])

AC_CONFIG_FILES(Makefile)
AC_OUTPUT

我运行 autoreconf -vfi,然后运行 ​​./configure,我得到:

checking google/sparse_hash_map usability... no
checking google/sparse_hash_map presence... no
checking for google/sparse_hash_map... no

但是,我可以检查是否存在 /usr/include/google/sparse_hash_map,这是一个 C++ 文件,它是 /usr/include/google/sparsehash/sparsehashtable 的薄包装.h。此外,微小的代码:

#include <google/sparse_hash_map>
int main() {return 1;}

使用 g++ test.cpp 编译和执行良好。

对新手有什么建议吗?

最佳答案

AC_CHECK_HEADER 宏默认使用 C 编译器。您可以使用以下方法更改当前语言:AC_LANG([C++]) 或:AC_LANG_PUSH([C++])/AC_LANG_POP - 如(单页)manual 中所述。例如,

...
AC_LANG([C++])
AC_CHECK_HEADERS([google/sparse_hash_map])
# still in C++ 'mode'

或:

...
AC_LANG_PUSH([C++])
AC_CHECK_HEADERS([google/sparse_hash_map])
AC_LANG_POP([C++])
# restored previous language 'mode'

关于c++ - 在 Autotools 中检查外部包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22303206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com