我正在构建一个安装高级堆栈的东西,为此,我需要安装较低级别的东西。如何最好地检查C库依赖项?
查找是否安装了Java的最简单方法是在shell脚本中剔除which java
并检查它是否可以找到它。例如,我现在到了需要做一些没有明显二进制文件的库 - 基本上来自C. libxml中的include
。
我对C总体上非常绿,所以这对我来说有点棘手。 :)理想情况下,我可以创建一个shell脚本,调用一个调用#include <xxxx>
的小应用程序,其中xxxx
是我检查存在的库。如果找不到,就会出错。不幸的是,当然,所有这些都是在编译之前发生的,所以它不像我想的那样动态。
我在一个可能没有安装任何东西(不管是高级语言还是包管理器或你有什么)的系统上这样做,所以我正在寻找更多的基本shell脚本方式做事情(或者一些聪明的C或者命令行gcc选项)。或者,也许只是手动搜索gcc无论如何会寻找的包含路径/usr/local/include
,/usr/include
等)。有什么想法吗?
你想:它处理这一非常问题的一个巨大的(和离奇)框架1 )在编译时确定存在库(.so),2)在编译时确定头存在(.h),3)在运行时确定库存在,或者4)在运行时确定头存在?或者是其他东西? – 2010-11-05 23:40:14
另外,你的目标操作系统是什么?您的使用表明某种形式的* NIX。 – 2010-11-05 23:40:40
查找依赖项的有用工具是'ldd'。用法:'ldd file',文件可以是可执行文件或共享库。 – Lekensteyn 2010-11-05 23:42:16