精华内容
下载资源
问答
  • QT在Ubuntu系统的开发,由于Linux系统不支持dll文件,而是支持so文件,因此,需要生成so文件从而能够被qt在Linux系统的调用,还望各位博友多多支持
  • Ubuntu 16.04环境下QT生成so(动态链接库), 并新建QT项目调用so文件 1.首先是新建一个工程,选择Library ,然后选择Library C++库,打开后是这样的: 2.选择 “choose”,命名为“plugintest”(后面的plugintest即...

    Ubuntu 16.04环境下QT生成so(动态链接库),
    并新建QT项目调用so文件
    1.首先是新建一个工程,选择Library ,然后选择Library C++库,打开后是这样的:在这里插入图片描述

    2.选择 “choose”,命名为“plugintest”(后面的plugintest即为同样流程建立的文件,plugintest0为了演示重新新建的项目)
    在这里插入图片描述

    3.点“next”之后,得到下图
    在这里插入图片描述

    4.继续“next”,得到下图
    在这里插入图片描述

    5.点“finish”,得到一个“plugintest”的工程,然后点菜单栏“build”的“rebuild project“plugintest””,然后点左下角的绿色三角按钮编译运行。在这里插入图片描述

    6.在plugintest.h修改为如下代码(红色为添加的代码):

    #ifndef PLUGINTEST_H
    #define PLUGINTEST_H
    #include "plugintest_global.h"
    class PLUGINTESTSHARED_EXPORT plugintest
    {
    
    public:
        plugintest();
        void helloworld();//新加入
    };
    #endif // PLUGINTEST_H
    

    7.在plugintest.cpp修改为如下代码(红色为添加的代码):

    #include "plugintest.h"
    #include <iostream>
    using namespace std;
    plugintest::plugintest()
    {
    
    }
    void plugintest::helloworld()//新加入
    {//新加入
        cout<<"hello world"<<endl;//新加入
    }//新加入
    

    8.再一次编译运行plugintest,项目的debug文件夹生成下面这些文件:(此时有弹出如下为成功)
    在这里插入图片描述

    9.新建C++项目,步骤:new project->non-qt project->plain c++ application->choose,然后一直next,直至新建到项目。
    10.鼠标右击项目insert_to文件夹,选择“add library”,得到下图,选“next”(把生成的libplugintest.so文件和plugintest.h文件放在insert_to文件夹里):
    在这里插入图片描述

    10.得到类似与下图library file选刚才的So文件,include path选insert_to文件夹
    在这里插入图片描述

    11.一直next得到下图pro文件的截图
    在这里插入图片描述
    在这里插入图片描述

    12.修改main.cpp,红色代码为加入新的内容,至此,调用完毕!

    #include <iostream>
    #include "plugintest.h"//包含plugintest.h头文件//新加入
    using namespace std;//新加入
    int main()
    {
        //cout << "Hello World!" << endl;
        plugintest test;//PluginTest是plugintest.h中定义的类名//新加入
        test.helloworld();//调用helloworld//新加入
        return 0;
    }
    
    展开全文
  • QT生成动态链接库.so文件

    万次阅读 2017-11-14 12:26:07
    QT生成动态链接库.so文件并在新的工程文件中调用。 然后输入新建的名称,下一步,记得勾选Qtcore那个(就是默认的那个),否则编译似乎不能通过。因为后面自动生成的.h文件里还有这个。 自动生成的有4个...

    首先是新建一个工程,选择C++库,打开后是这样的:


    然后输入新建的名称,下一步,记得勾选Qtcore那个(就是默认的那个),否则编译似乎不能通过。因为后面自动生成的.h文件里还有这个。

    自动生成的有4个文件一个pro,一个cpp,一个XXX.h文件,一个XXX_global.h

    可以检查下.pro里的类型是不是lib类型。

    下面就可以在XXX.h文件里声明自己要写的函数,进行宏定义,#define一些用到的常量。

    比如类名为Mm,那么

    public:

    int Mm::aa(int a,int b){


    int c=a+b;

    return c;

    }

    这样调用这个aa传回来的就是c的值了。

    其中需要注意的是,构造函数和类同名,他不能有返回值。不能是int和void类型,都不正确。

    所以需要有返回值的时候,函数名不能和类同名!之后我们还可以写别的函数。都放在这个类中。

    函数的实现需要点开.cpp文件,cpp中专门写实现这些函数(方法)的代码。

    下面说调用这个函数:

    新建一个工程,注意在pro文件中需要将lib的目录和.so的目录加进去。

    lib目录(就是.h文件所在目录):INCLUDEPATH +=/home/will/Projects/pluginTest/

    .so目录为:LIBS += -L/home/will/Projects/build-mm-Desktop-Debug\

                                     -lmm (一定不能少了这个,这个是库的名字l+类名)

    如下图所示:



    在main.cpp中调用这个函数。

    int main(){

    Mm mm;//需要先新建这个对象

    int c=mm::aa(2,5);//mm这个对象中有aa这个函数,这样就实现了调用。

    printf("%d\n",c);

    }

    至此,就完成了整个过程!



    展开全文
  • linux下qt创建so文件,并调用

    千次阅读 2019-08-17 13:34:49
    1:用qtCreator创建一个so... 这里出现两个选项,一个创建本机pc上的so文件,一个创建目标板的so文件,我这里选本机,下一步,默认勾选了qtcore, 如果这个so文件不含界面之类的,默认选这一个够用,一直下一步...

    1:用qtCreator创建一个so项目

           先创建库文件,创建库文件->C++ Libiary,选动态库,选存放路径,填写程序名称,下一步,由于我这边安装了交叉编译环境

          这里出现两个选项,一个创建本机pc上的so文件,一个创建目标板的so文件,我这里选本机,下一步,默认勾选了qtcore,

          如果这个so文件不含界面之类的,默认选这一个够用,一直下一步创建成功。

     2:默认创建出来so项目介绍

          默认创建出来的项目在head目录下都有一个XXX_global.h,这个文件写了个宏定义,是不是做导出用。

           #if defined(TESTLIB_LIBRARY)
           #  define TESTLIBSHARED_EXPORT Q_DECL_EXPORT
           #else
           #  define TESTLIBSHARED_EXPORT Q_DECL_IMPORT
           #endif

          如果定义了TESTLIB_LIBRARY ,则定义TESTLIBSHARED_EXPORT为导出关键字。

           在pro文件中,默认定义了TESTLIB_LIBRARY。那么肯定只要用TESTLIBSHARED_EXPORT修饰的类或函数都是做导出用。

           默认给的demo导出了一个类,在导出类中新建一个函数,供外部调用。

      3:如何在主程序中增加这个so

           创建调用so的主程序,可以新建一个带界面的程序,放个button,鼠标点击时候调用这个so中的函数,输出一些信息,测试    是否调用成功,在主程序的pro文件中,增加如下两行,把头文件和库文件引用进来。 

      INCLUDEPATH += /root/Downloads/testlib
      LIBS += -L/root/Downloads/testlib -ltestlib

      INCLUDEPATH += 后面写so的头文件的路径,LIBS += -L后面写lib文件的路径,-l后面是库的项目名称。

      注意1:不要带上so,或者其他so.1   注意2:-L后面直接写路径,不要有空格 

      以上两点出错都会造成程序执行时候提示连接不到库。

      注意三:包含头头文件的时候把so库的XXX_global.h 头文件也包含上,否则编译不过。建议头文件从原项目拷贝出来,放到主项目目录下,然后写相对连接来引用。

    展开全文
  • linux下生成和调用QT so

    千次阅读 2020-04-09 11:47:42
    生成动态库 ...XXX_global.h是所有Library项目都有的头文件,选取要用的Qt模块的包含声明也在该文件内。 3.编译项目 4.在项目父文件下编译生成的build_XXXX-Debug的目录下, 一般会有XXX.so.1.0....

    生成动态库

    1.创建QT项目,创建C++Liberary
    一路next,选取模块的时候按需要选择,默认仅选择QtCore模块
    在这里插入图片描述

    2.在自定义的类中写一个hello()的测试函数

    在这里插入图片描述XXX_global.h是所有Library项目都有的头文件,选取要用的Qt模块的包含声明也在该文件内。

    3.编译项目
    在这里插入图片描述4.在项目父文件下编译生成的build_XXXX-Debug的目录下,
    一般会有XXX.so.1.0.0共享库文件和XXX.so、XXX.so.1、XXX.so.1.0
    在这里插入图片描述

    至此,动态库生成完毕。

    调用动态库:

    1.新项目中,在XXX.pro配置文件中添加:
    includepath的路径是动态库头文件所在的目录
    在这里插入图片描述
    LIBS 中-L添加的是动态库所在的目录
    -l添加的是共享库名称(注意是共享库项目名而非共享库文件名)
    在这里插入图片描述

    2.然后头文件添加动态库的头文件,生成对象调用函数;

    在这里插入图片描述
    参考:

    https://blog.csdn.net/lywzgzl/article/details/42805991?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1

    展开全文
  • Ubuntu+Qt Creator 3.0.1(Base on Qt5.2.1 GCC 4.8.2.32Bit).so文件的制作与调用 全部源码下载地址: https://download.csdn.net/download/xjzdr/15544581 开发环境: 1、创建动态链接库:项目名称:...
  • 使用qt creator如何加载.so库来调用其中的api函数 使用qt creator来开发QT程序时,如果用到了三方库.so文件,如何加载他?
  • 本文介绍如何实现Android 与 QT 的结合,使Android能够调用QT的代码,避免重复造轮子最近在做...首先,Android调用的库是.so库,所以QT必须安装QT for Android,否则无法生成对应的.so库,不要想着用linux系统...
  • 此处的编译器必须为交叉编译器: 以test文件为例: 1、将现有的文件编译为...将libtest.so文件和test.h文件复制到.pro文件同级目录 3、在.pro文件中添加代码: LIBS += ./libtest.so 注意!! 交叉编译的话,需要...
  • linux下Qt编译库so文件

    2015-07-17 09:01:40
    qt在linux编译后会产生四个so文件,so、so.1、so.1.0、so.1.0.0, 调用这个库时好像找的是so.1这个库。 问题1:如何让调用者找的是so这个库,然后再连接其他到实体库。 问题2:如何编译后只生成一个库文件,只要so....
  • Qt生成文件

    千次阅读 2020-12-10 19:35:21
    Qt生成dll或so(含Liunx端与Windows端) 共享库生成 Linux端编译及调用 Windows端编译及调用 共享库生成 注意:编译的时候要用lib,相当于列表,关联dll中的函数! 这里首先用Qt Creator 新建一个共享库 ...
  • cpp中添加:int Make_so::add(int a,int b)函数,然后构建,生成:make_so.h、make_so_global.h、libmake_so.so、libmake_so.so.1、ibmake_so.so.1.0、ibmake_so.so.1.0.0 调用.so: 新建工程 test_so 在工程->...
  • qt编译完成一个库之后,自动将这个库复制到指定目录下。 Step1: 在Pro文件中添加如下: win32{ CONFIG(release,debug|release){ target.path = DIR\YOU\Want\COPY\TO target.files += DIRPATH\xxx.dll } ...
  • QT 生成.so动态库时,会默认生成.so .so.1 .so.1.0 .so.1.0.0四个文件,其中其他三个文件都是指向.so.1.0.0这个实际的库文件的链接文件,为了版本控制。 要想直接生成.so作为实际库文件,可以在.pro工程文件中添加...
  • 生成纯净的so文件,也就是不包含qt的内容的话,在qt配置文件.pro中添加: 1、QT -= gui #表示禁止使用qt的GUI界面及界面相关的文件; 2、CONFIG -= qt#表示禁止使用qt的库; 3、QT 生成.so动态库时,会默认生成...
  • 1.qmake方式生成和调用动态库链接:https://blog.csdn.net/lywzgzl/article/details/428059912.cmake方式生成和调用动态库2.1创建共享库项目Cmake新建一个Qt Creator项目,在CMakeLists.txt中添加如下代码#----------...
  • 目录   共享库生成 Linux端编译及调用 ...这里首先用Qt Creator 新建一个共享库 如下图: 生成后如下图目录结构: 源码如下: test.h #ifndef TEST_H #define TEST_H #include "test_global...
  • 完成之后我们再次尝试导出一个QTso库。 上面的步骤完成之后,可以看到QTCreator自动帮我们创建了这几个文件: 我们对 Test 稍微改造一下,导出函数,而不是导出类,作为动态库时,导出类可能并不是很适用。 ...
  • qt动态链接库so生成与调用

    千次阅读 2019-09-16 09:26:56
    Linux下Qt创建和调用共享库文件.so 费了点功夫,总算get了编写共享库(Shared Library,Windows下称为“动态链接库”,即Dynamic Link Library)和调用的这个新技能! 动态链接库的好处是不言而喻的,一个稍微复杂...
  • 手把手实现Qt生成dump文件并定位Bug(Linux下)一、dump和pdb是什么二、搜集跨平台生成dump的方案三、基于qBreakpad生成dump文件1、Breakpad介绍2、源码准备(1)下载Breakpad源码(2)下载LSS源码(3)下载...
  • 了解Qt生成的工程文件 1、工程文件: *.pro 工程文件定义了Qt用的类库、目标程序的文件名、采用模板、C++源文件、C++头文件和样式文件 QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets ...
  • Qt Creator生成动态链接库文件

    千次阅读 2019-04-13 12:25:07
    选择共享库(即动态链接库),输入工程名(即最终生成DLL名)。 操作步骤:选择共享库 -> 输入工程名(即最终DLL名) -> 选择工程路径 -> 下一步 第三步 选择编译平台,一般来讲,wind...
  • 空白工程新建DLL后,将DLL和LIB文件放入需要调用的“指定目录”项目-》属性->...VC6.0:使一个项目编译生成DLL库而不生成可执行文件:删除main()方法;将.pro项目文件中的TEMPLATE = app改为TEMPL...
  • 如标题所示,在linux下使用qtcreator创建项目调用C++库文件,并成功运行。 一、编程环境及实现方法 系统:ubuntu16.04 IDE:Qtcreator5.9.9 编程语言:C++ 第三方库:opencv2.4.13.6 自制C++共享库:libdisplay.so ...
  • 一般会生成四个文件: 这4个动态库(.so .so.1 .so.1.0 .so.1.0.0)前三个都是连接连接到.so.1.0.0这个实实在在的库,前三个均为软链接。软链接基本作用就是版本迭代,如果你需要更换版本,只需要把.so的指向改掉就....
  • Qt自动生成依赖文件

    2018-05-26 11:13:06
    第一步:新建一个文本文件改名为 ——... 找到QT中 windeployqt.exe所在路径+空格 + release生成的xxxx.exe文件,回车+pauseE:\Qt\Qt5.8.0\5.8\msvc2013\bin\windeployqt.exe Addressbook_t.exepause第三步:双击 m...
  • 1、QT生成release文件,并将生成的可执行文件(此处命名为QTConsole)复制到新建文件夹QTTest; 2、ldd QTConsole(QTConsole为你的可执行文件名)查看依赖文件: 由于我的依赖文件中有一个自己生成的动态库文件,所以...
  • 说实话这个问题搞了好久,错误原因很简单,但是一开始没有往哪里...2、生成pack.sh脚本,用来到处需要的库文件(可以向通过ldd命令查看要那些库文件) #!/bin/bash LibDir=$PWD"/lib" Target=$1 lib_array=($(ldd ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,271
精华内容 4,508
关键字:

qt生成so文件