如何检查用户是否在makefile中有库

时间:2015-10-28 21:00:35

标签: c++ makefile shared-libraries

例如,如果我开发了一个c ++项目并将其作为开源项目放在GitHub上。在我的项目中,我使用 log4cpp 作为第三方库来做日志。感兴趣的用户会下载我的项目并运行" make"突然发现他们的机器不认识log4cpp。

我需要你们验证我原来的想法:

与你可能只是在你的包中包含第三方jar文件的Java不同,我知道C ++有点不同:你必须让客户自己编译库。很明显,如果我没有来自第三方的源代码,我根本无法帮助客户端安装库。相反,我需要检查用户是否已经安装了这些必需的库,如果没有,只是警告他们不要继续。

如果这些陈述属实,我应该考虑使用哪些工具来检查?另外,一个附加问题:如果我想生产非开源产品,我该怎么办? (因为客户端需要我的源代码来编译。)如果没有(特别是自己编译部分),请给我你的解释。

谢谢!

1 个答案:

答案 0 :(得分:0)

示例生成文件:

ifeq "$(shell echo '\#include <readline/readline.h>\nint main(){return 0;}' | $(CC) -x c -Wall -O -o /dev/null > /dev/null 2> /dev/null - && echo $$? )" "0"
  HAS_FILE = yes
else
  HAS_FILE = no
endif

all:
  echo has_file=$(HAS_FILE)

我不会说这是推荐的方法,我只是将其用于简单的检查。 Autoconf 可能是更好的选择。