Blackrose's Blog Blackrose's Blog

QT4中使用C的静态库或动态库

in technologyread (183) 文章转载请注明来源!

这几天跟老师学QT4,还要写个播放器,郁闷呐。QT使用c++来写程序,可惜本人菜鸟一个,没学过c++,只能用c来写程序了,可是有个问题,QT使用c的标准库会有问题,所以我们可以把c写个程序做成库,以便让QT来调用,这样应该可以符合内聚性的精神吧,o(∩∩)o...哈哈。下面就来说说,本人今天的成果。

目的:显示一个窗口,点击按钮的时候在终端显示字符。

先写两个文件test.c和test.h,test.c中写一个print函数,函数中写一个printf即可;test.h中声明test.c中的print函数即可。
由于制作动态库和静态库都需要.o的文件,所以前面是一样的。

gcc -c test.c
下面就是重点了!!

一.QT4使用静态库

ar crv libtest.a test.o

执行完上面的命令,就会生成一个libtest.a的文件,下面就让QT来调用这个静态库文件。

用QTCreator创建一个工程,再UI界面中放一个pushButton即可。接下来就是写代码了。
我们在工程的mainwindow.cpp中来调用库文件.
首先在mainwindow.cpp的开头添加如下代码

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

然后在构造方法中写槽,即连接函数
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(output()));

还要添加一个方法,方法名为output(),里面写print()即可。
还有最后一步,在mainwindow.h文件中声明一下刚才写的output方法即可。

qmake -project
qmake
make

二.QT4调用动态库

同样要先生成test.o的文件,然后执行下面的命令

gcc -shared -fPCI -o libtest.so test.o

接下来就和上面的步骤一样,要添加相应的代码,添加完后执行下面的命令

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
qmake -project
qmake
make

注意:制作库文件时,不要在qt的工程文件夹下做。做好后再拷贝到工程下即可。

文章二维码

扫描二维码,在手机上阅读!

QT
发表新评论
博客已萌萌哒运行
© 2018 由 Typecho 强力驱动.Theme by Yodu
前篇 后篇
雷姆
拉姆