检查c库

时间:2011-05-31 20:17:25

标签: bash

如果安装了c库,bash中检查se的最佳方法是什么?

每条评论,更清楚:
我运行一个安装脚本来查找libexpat头文件(expat.h)
目前它通过以下方式实现:

if ! locate libexpat.so 1> /dev/null; then

但是,它应该寻找expat.h,但这仍然需要首先更新mlocate数据库。

有更好的方法吗?

3 个答案:

答案 0 :(得分:2)

您可以autoconf执行(或者更准确地说,configure生成的autoconf脚本),并测试您是否可以编译使用该库的C程序。< / p>

如果您没有安装编译器或开发工具,则您的选项会受到更多限制。

目前还不清楚是否要搜索库的位置,或者只关心它是否安装在主库目录中。另外,您是在寻找共享库,还是在寻找静态库 - 命名约定根据您的目标和使用的机器类型而有很大差异(Linux和Solaris vs AIX与MacOS X相比)例如,vs HP-UX(旧版,PA-RISC版)和Windows版。如果您正在寻找静态库,那么在没有编译器(可能还有标题)的情况下,您将很难使用它们。如果您正在寻找共享库,那么如果您在其他计算机上编译该程序并将其复制到目标计算机,则可以使用那些没有开发用具的库。

答案 1 :(得分:1)

我发现的最好的是@ cnicutar的评论,谢谢 特别是在bash脚本中执行此操作:

expat_loc=`whereis -b expat.h | cut -c8-`
if [[ -e "$expat_loc" ]]; then
  #Something something
fi;

答案 2 :(得分:0)

如果你需要运行时,你需要一个特定的版本来运行一些东西。尝试运行那些东西 如果你需要标题,请尝试编译。