qt静态链接库心得

今天在工作上要调用别人的函数,故而用到了静态链接,网上方法挺多的就不赘述了,只是来说说自己的大概情况。


pro文件里面添加

LIBS     +=My_path/libwaveformGEN.a   //路径要一致,否则会报错找不到该文件

然后我就报了三行错


 relocation R_X86_64_PC32 against symbol `ceil@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC

 final link failed: Bad value

collect2: error: ld returned 1 exit status


看样子是编译可选项目里没有-fPIC

于是又加了

QMAKE_CFLAGS    +=  -fPIC
QMAKE_CXXFLAGS  +=  -fPIC

然后依然还是原来的错误。。。后来网上各种找啊。。


后来怀疑是不是编译.a文件没有添加-fPIC


先扔个背景, 我要调用的静态链接库是带我的前辈写的,之前用codeBlock一点问题没有,让我回去自己检查检查    说白了就是他觉得代码能跑问题肯定不在这。。。(前辈喊不动。。而且他也忙  然后就这么耗着。。)


但是我用的是Qt5的开发,区别和codeBlock有点大。。。最废了不少口舌才让他添加-fPIC重新编译了一个新的.a 文件  最后rebuild下


调用头文件因为是C语言写的

所以

extern "C"
{
#include "yourFileName.h"
}

然后就成功了

。。


阅读更多
个人分类: qt开发
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭