我正在寻找一种方式,以降低优雅在没有标题或符号。考虑我的安全文件:

#import "FooHeader.h"

// override some method that needs a symbol from FooHeader
-(id)myImplementation:(FooSymbol)aSymbol
{
...
}

我想做的是检查FoeHealth.h的存在,然后尝试导入它。下一步,如果标题不存在,也就是符号FoSyMBOL也不可用,所以我也不想尝试编译那个方法。像这样的:
#if HEADER_EXISTS(FooHeader)
#import "FooHeader.h"
#endif

// override some method that needs a symbol from FooHeader
#if SYMBOL_EXISTS(FooSymbol)
-(id)myImplementation:(FooSymbol)aSymbol
{
...
}
#endif

有人知道这样的机制是否可行吗?理想情况下,这将在C/C++/Objto-C环境中工作。
谢谢

最佳答案

这通常使用autoconf完成。创建名为configure.ac的文件。在configure.ac中,添加ac_CHECK_头([FooHeader.h]。。。。
在项目上运行./configure时,Makefile CFLAGS将获得-DHAVE_FooHeader定义。在您的C文件中,您可以使用ifdef HAVE FooHeader。
我没有一个方便的例子,但会建议检查自动配置信息页或在线查看自动工具教程。

关于c++ - 安全地使用C符号和 header ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5359180/

10-11 16:27