LInux下用QT创建动态库文件 .os,并调用

参考链接: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.运行查看结果

  

  

原文地址:https://www.cnblogs.com/xingboy/p/14378408.html