c - 如何使用宏进行 undefined reference

标签 c gcc macros linker undefined

我有通过 GCC 使用 .a 文件静态编译的 C 代码。

在 C 代码中,我使用在 .a 文件中实现的函数。

如果此函数是否在 .a 文件中定义,我如何执行使用 if else 之类的宏(在 C 代码中),例如 if 函数 a未定义我想使用函数b:

# IF_A_UNDEFINED
b()
#ELSE
a()
#ENDIF

这样可以吗?

最佳答案

3 个答案:不,不,也许(这可能不是您要找的)

简短的回答,不。

答案更长,但总而言之,仍然没有。在大多数情况下,编译错误是不容忽视的。当然,不能忽略未声明参数的使用,如果您正在寻找一个不存在的函数,那么,如果没有声明的函数名称,您就无法引用它。

最后,您可以像这样声明该函数: void functionA() __attribute__((weak, alias("functionB")));

void functionB() { printf"Hello World\n"; }

关于c - 如何使用宏进行 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57655915/

相关文章:

c - 如何在 C 中使用作为参数从命令行传入的文本文件?

c - 奇怪的输出迭代 va_list 变量

ios - Objective-C 中的宏调用 isEqualToString : produces error about invalid token

c++ - 根据平台目标修改 OriginalFilename 字符串

c - 在同一端口上接收多个多播提要 - C、Linux

c - 在经典代码 opencv c++ 中使用池化层

c++ - VS2013 下的 emplace_back() 问题

c++ - 使用成员创建数组时的不同 -Wsign-conversion 行为

android - ffmpeg 构建错误看起来 tmp 文件创建失败?

macros - `:expr` 后跟 `:tt` ,`expr` 片段不允许