今天使用Qt写了个动态库,在其他项目文件调用此动态库时,总是报下面错误:
undefined reference ,提示动态库中的接口函数未定义
经过和同事研究,终于发现了问题所在:
1.使用Qt编写动态库时,系统自动生成的.h文件里面有个类,如下面所示
class QHKDLLSHARED_EXPORT QHKDLL
{
public:
QHKDLL();
};里面包含
QHKDLLSHARED_EXPORT
这个关键字,话说最终我也没搞明白这句话是啥意思,
反正问题就出在这个关键字上面,将这个关键字删掉,如下所示
class QHKDLL{public:
QHKDLL();};重新编译动态库,然后在其他项目中按原来方法调用,一切OK!
PS:今天这个问题搞了两个多小时,感谢同事,在此记录一下。