如何有条件地包含一个库

Posted

技术标签:

【中文标题】如何有条件地包含一个库【英文标题】:how to conditionally include a library 【发布时间】:2013-08-23 08:34:31 【问题描述】:

有一个项目使用 protobuf 作为序列化协议的选项,但并非所有用户都安装了 protobuf。我现在使用的解决方案是在configure.ac 中使用AC_CHECK_LIB[(protobuf)],在Makefile.am 中使用if HAVE_PROTOBUF AM_LDFLAGS += -lprotobuf endif。 我现在想做的是./bootstrap.sh --enable-protobuf。让用户定义是否包含protobuf,可以吗?

【问题讨论】:

是的,但我认为使用自动工具相当痛苦。您是否考虑过离开 autotools 并改用 cmake 或 scons? 自动工具会很复杂吗?如果是,我会考虑你提到的工具。 不,它不是特别复杂,但我认为它非常非常难看。 【参考方案1】:

阅读 autoconf 手册中有关 AC_ARG_ENABLE 的信息。

【讨论】:

以上是关于如何有条件地包含一个库的主要内容,如果未能解决你的问题,请参考以下文章

有条件地包含 C++ 标准库

如何有条件地在 StackView 中居中图像

如何根据列表有条件地更新 Pandas 中的 DataFrame 列

如何根据另一列中的单元格值有条件地填充熊猫列

如何有条件地从熊猫系列中选择项目

如何有条件地更改输出文本[重复]