参考链接:https://blog.csdn.net/csdn83419527/article/details/78840798
https://blog.csdn.net/qq_40263915/article/details/104884917
======创建动态库.os文件======
1.新建工程
点击Qt Creator菜单栏“文件”-->“新建文件或项目”,选择Library,C++库,点“choose”。
一路Next下去即可,在Kits步骤也是,按照系统默认设置即可,除非自己需要改变编译等配置;直接 点“下一步”即可。
最后完成创建,如果需要进行版本控制可以进行设置,否则点“完成”即可。
2.代码实现
创建后,Qt Creator自动生成三个文件分别是XXX_global.h、XXX.h、XXX.cpp。其中XXX_global.h是一个宏定义文件,如下图所示。
注意:图中标蓝的部分,可以拷贝至XXX.h中,同时将XXX_global.h删除掉,这样项目也可以直接编译使用,不删除也没有问题,只是使用时,使用程序需要同时将XXX_global.h、XXX.h包含,否则会报找不到XXX_global.h错误。这里建议把蓝标部分复制到XXX.h文件中,这样后续调用只需要包含一个即可,标蓝部分拷贝到XXX.h中的位置如下图所示。
下面编写一个测试函数,先在头文件声明
接着在 .cpp 编写实现代码逻辑,这里实现把两个参数相加并返回。
3.编译生成 .os 库文件
编译后会弹出一个界面,不用管它,直接关闭即可
编译完成会在Release文件夹里生成的4个库文件,如下图。
到这里就已经完成 .os 库文件的创建了,为了方便后续给别调用,我们可以新建一个文件夹,把上面生成的4个库文件和XXX.h文件保存在里面,后续只需要把这个文件夹给别的项目就可以调用了。
======实现调用动态库.os文件======
1.新建立工程
建立工程这里不细说了,具体可以参考:https://www.cnblogs.com/xingboy/p/14376226.html
项目建成如下:
2.调用os库
把上面新建保存有需要用的os库文件跟.h文件的文件夹复制到,新建项目的文件夹里,然后在313kDemo处右键点击,弹出,选择Add Library。
然后选择外部库.
完成后.por文件会出现如下内容
$$PWD用于指定包含.pro文件目录的完整路径;INCLUDEPATH 指定编译项目时被搜索到的 #include 目录;LIBS指定了链接到项目中库的列表,添加的是共享库文件,-L添加目录,-l指定共享库名称(注意是共享库项目名而非共享库文件名);DEPENDPATH是程序编译时依赖的相关路径。然后我们就可以添加头文件,类似于内部定义的函数一样实现调用了。
先在项目里添加os库文件的.h文件,把保存有os文件与.h文件的文件夹里的.h文件添加进去。
然后在mainwindow.h文件里包含os库的.h文件,其实不一定在mainwindow.h文件里包含,在其他文件包含也行,这里为了方便就直接在这里包含了;然后对OS库的头文件里声明的类名进行重命名。
3.代码测试
在UI界面添加3个文本框跟一个按钮,编辑代码实现,获取两个文本款数值,调用os库里的函数,实现该函数功能,并把结果输出在另一个文本框。
选中按钮,右击转到槽,添加实现代码。
void MainWindow::on_pushButton_clicked() { int a=ui->textA->text().toInt(); //获取文本框的值 int b=ui->textB->text().toInt(); int data=mySdk.MyTest(a,b); ui->textC->setText(QString::number(data)); //把数值转为字符串输出到文本框 }
4.运行查看结果