Ste*_*eve 10 c automake gnu shared-libraries
我的C库有一些可选功能,使用automake,用户可以通过提供配置标志来打开和关闭它们.
如果关闭某个功能,则不会编译该功能.
但是,我的问题是,在这种情况下,我是否应该从公共头文件中删除函数原型?
这似乎不是一个好主意,有未编译函数的函数原型,但它也对我来说不是一个好主意,有不同的公共报头装取决于库配置.(类似于config.h在公共头文件目录中安装的不良做法.)
对于可选功能,公共标题的最佳方法是什么?如果用户尝试使用禁用的功能,错误应该在编译时还是链接时?这种情况必须有标准做法.(如果有多个想法,我更愿意遵守GNU编码标准,但我不知道关于这个问题的GNU标准.)
我认为这个问题有两种有效的方法
#ifdef删除某些配置中不支持的函数#ifdef每个头文件都特定于某个配置对于给定的配置,将库中不存在的函数保留在头文件中似乎是一种非常糟糕的做法。它将处理应该是编译时错误的错误并将其移至链接器错误。
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |