函数指针指向" undefined"功能

时间:2014-03-25 18:32:58

标签: c gcc function-pointers objcopy

所以,这就是问题所在。

我使用gcc -c编译了一些目标文件,并使用obj-copy克隆了它们。 如果初始目标文件的a函数名为foo(),则克隆对象中生成的函数名称为: foo1(); foo2(); foo3();

然后,我将这3个对象与包含main方法的另一个文件链接起来,并且我可以通过使用例如以下方法来调用每个函数变体。 foo2();。这项工作非常好!

但是,如果我尝试使用以下命令创建指向这些函数的函数指针:

functionPtr=&foo1; \\ tried also w/o the &

然后,我得到:

error: 'foo2' undeclared (first use in this function)

有什么想法吗?这与链接有关吗?

1 个答案:

答案 0 :(得分:1)

必须在某个头文件中声明

foo2。您已经克隆了目标文件,但是C编译器仍然需要告诉它有一个名为foo2的函数以及它的签名是什么。如果您在原始foo的某个地方有声明,只需复制一份,并将名称更改为foo2,并确保标题为#include' d源。