• 9821阅读
  • 7回复

如何用QT创建动态链接库 [复制链接]

上一主题 下一主题
离线niensiwy
 

只看楼主 正序阅读 楼主  发表于: 2010-11-05
— 本帖被 XChinux 执行加亮操作(2010-11-05) —
各位,请问一下,怎么样在QT中创建动态链接库,有哪位大大写一个完整的小例子的过程,也就是动态链接库里面有一个简单的数学函数,然后被另外一个QT中的程序调用。现在小弟很急,却又不会,谁能帮帮,万分感谢
离线__loki
只看该作者 7楼 发表于: 2013-04-14
请问楼主啊,
我建立一个qtlib工程,希望导出自定义的 信号槽函数,但是链接的时候总是提示:
“lqtlib::staticMetaObject”: 不允许 dllimport 静态数据成员 的定义
离线cspp

只看该作者 6楼 发表于: 2010-11-08
看附件。
你再另外自己写个测试程序,包含头文件,和库就可以了
附件: exploreapi.7z (1 K) 下载次数:23
离线niensiwy

只看该作者 5楼 发表于: 2010-11-06
回 1楼(XChinux) 的帖子
你好,我用的是VS2008的环境,你能帮我写一个小例子的代码,让我看看吗,我新手,好多不会,谢谢
离线niensiwy

只看该作者 4楼 发表于: 2010-11-06
回 2楼(htyoung) 的帖子
你好!非常感谢你写的例子,不过我用的编译器是VS2008,我在仔细研究研究
离线niensiwy

只看该作者 3楼 发表于: 2010-11-06
非常感谢
离线htyoung

只看该作者 2楼 发表于: 2010-11-05
这个例子是在QT里用QT 的 template=LIB 选项,然后可以产生 dll文件和Lib文件。

注意:下面列子使用的编译的环境是VC++ 9.0 express,如果是GCC编译器,请看QT help(assistant),有详细的说明,


#if defined(Q_OS_WIN)
#if defined(BUILDING_MY_LIBRARY)
#define MY_EXPORT __declspec(dllexport)
# else
#define MY_EXPORT __declspec(dllimport)
#endif
#endif


namespace Ui
{
    class HelpDialog;
}
class MY_EXPORT HelpDialog : public QDialog
{
        Q_OBJECT

    public:
        HelpDialog( QWidget* parent = 0, Qt::WFlags fl = 0 );
        ~HelpDialog();
    private:
        Ui::HelpDialog *m_ui;
};

#endif

QT的pro文件如下:
TEMPLATE = vclib
DESTDIR = $$LIB_DIR
TARGET = docs
CONFIG +=
DEFINES += BUILDING_MY_LIBRARY

PRE_TARGETDEPS += $${PWD}/help.html
QMAKE_CLEAN += $${PWD}/help.html

RESOURCES += docs.qrc
FORMS += helpdialog.ui

SOURCES += helpdialog.cpp
HEADERS += helpdialog.h


然后你可以得到一个 *.lib 和 *.dll
如何调用lib我就不说了。
***
QT5
***
离线XChinux

只看该作者 1楼 发表于: 2010-11-05
你用的什么编译器?简单的,你把这个函数的头文件和实现文件单独放到一个项目中,然后在这个项目的.pro文件中将TEMPLATE设置成lib,然后编译,就可以了。根据编译器的不同,你的头文件的写法可能会不一样。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个