• 6451阅读
  • 2回复

Qt 动态库的生成与调用 [复制链接]

上一主题 下一主题
离线20044454
 
只看楼主 正序阅读 楼主  发表于: 2009-07-15
动态库创建:建立了
libPtiHdlc.h

#ifndef LIBPTIHDLC_H
#define LIBPTIHDLC_H


class libPtiHdlc
{
public:
    int add(int i,int j);
    int sub(int i,int j);
};
#endif

libPtiHdlc.cpp

#include "libPtiHdlc.h"

extern "C" int libPtiHdlc::add(int i, int j)
{
    return i+j;
}
extern "C" int libPtiHdlc::sub(int i, int j)
{
    return i-j;
}


在.pro文件中

TEMPLATE = lib
TARGET = ptihdlc
CONFIG += plugin


这时候会生成文件

libptihdlc.so
然后把libptihdlc cp 到/usr/lib/目录下(比较重要)


创建调用程序:
main.cpp
#include <QApplication>
#include <QLibrary>
#include "libPtiHdlc.h"
#include <QtCore>

int main(int argc, char *argv[])
{
    QApplication app(argc,argv);

    libPtiHdlc pti;
    qDebug() << pti.add(3,5);
    qDebug() << pti.sub(18, 4);


    return app.exec();
}


libptihdlc.so
libPtiHdlc.h
都复制到 main.cpp 目录下

再在.pro文件中
######################################################################
# Automatically generated by qmake (2.01a) ?? ?? 15 15:05:44 2009
######################################################################

TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .

#LIBS  +=./libptihdlc.so(这两种表示方法都可以)
LIBS  += -L./ -lptihdlc
# Input
HEADERS += libPtiHdlc.h
SOURCES += main.cpp


编译成功
谢谢 大家
[ 此帖被20044454在2009-07-15 16:31重新编辑 ]
让我做一个Qt的大牛!!!!
离线naked_fox
只看该作者 2楼 发表于: 2009-07-16
谢谢,学习了
离线rqzrqh

只看该作者 1楼 发表于: 2009-07-15
据说有为了增加程序启动速度,一种优化方法就是把可执行文件做成动态库进行链接
快速回复
限100 字节
 
上一个 下一个