关于extern一个static函数的问题程序需要调用某个LIB文件 aaa.lib 中的某个函数
该函数声明并实现在aaa.c中,声明如下
static void funcA();
我在我的程序中需要调用这个函数,就写成
extern void funcA(); //(这里应该不用加static关键字了吧,加了好像编译不过)
然后link我的程序时报告funcA()这个函数符号无法找到,但它明明在aaa.lib中实现的了啊。
(link时已经链入了aaa.lib,程序中其他地方都调用了aaa.lib的其他函数了,都能link过)请朋友帮忙想想可能是什么原因?难道aaa.lib中没有funcA()?为什么link不上?
该函数声明并实现在aaa.c中,声明如下
static void funcA();
我在我的程序中需要调用这个函数,就写成
extern void funcA(); //(这里应该不用加static关键字了吧,加了好像编译不过)
然后link我的程序时报告funcA()这个函数符号无法找到,但它明明在aaa.lib中实现的了啊。
(link时已经链入了aaa.lib,程序中其他地方都调用了aaa.lib的其他函数了,都能link过)请朋友帮忙想想可能是什么原因?难道aaa.lib中没有funcA()?为什么link不上?
把static去掉应该就可以了。
另外funcA的声明没有导出吧
静态link也需要找到函数的地址
用extern导入
void funcA();
static 的scope只是本文件的extern可以被所有的調用。。不過需要聲明..