我有C代码可以通过GCC与.a
文件静态编译。
在C代码中,我使用在.a文件中实现的功能。
我该如何使用(在c代码中)使用的宏,例如是否在.a
文件中定义了此函数,例如,如果函数a
未定义,我想使用函数b
:
# IF_A_UNDEFINED
b()
#ELSE
a()
#ENDIF
那可以通过吗?
答案 0 :(得分:0)
3个答案:不,不,也许(可能不是您要找的东西)
简短回答,不。
更长的答案,但是TLDR,仍然没有。在大多数情况下,编译时的错误不能忽略。当然,不能忽略使用未声明参数的情况,并且,如果要查找不存在的函数,那么,没有声明函数名就无法引用它。
最后,您可以这样声明函数:
void functionA() __attribute__((weak, alias("functionB")));
void functionB() { printf"Hello World\n"; }