例如,如果我开发了一个c ++项目并将其作为开源项目放在GitHub上。在我的项目中,我使用 log4cpp 作为第三方库来做日志。感兴趣的用户会下载我的项目并运行" make"突然发现他们的机器不认识log4cpp。
我需要你们验证我原来的想法:
与你可能只是在你的包中包含第三方jar文件的Java不同,我知道C ++有点不同:你必须让客户自己编译库。很明显,如果我没有来自第三方的源代码,我根本无法帮助客户端安装库。相反,我需要检查用户是否已经安装了这些必需的库,如果没有,只是警告他们不要继续。
如果这些陈述属实,我应该考虑使用哪些工具来检查?另外,一个附加问题:如果我想生产非开源产品,我该怎么办? (因为客户端需要我的源代码来编译。)如果没有(特别是自己编译部分),请给我你的解释。
谢谢!
答案 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 可能是更好的选择。