• 6125阅读
  • 3回复

如何使用QT生成动态库 [复制链接]

上一主题 下一主题
离线vruser
 

只看楼主 倒序阅读 楼主  发表于: 2007-05-29
— 本帖被 XChinux 执行加亮操作(2008-07-18) —
在windows系统中,如何使用QT生成DLL或OCX,并实现跨平台,在UNIX系统中也可以生成动态库文件
[ 此贴被XChinux在2008-07-18 16:46重新编辑 ]
离线llhh2000

只看该作者 1楼 发表于: 2007-05-29
在pro文件中加上:
    TEMPLATE    = lib
如果你想保证在unix下和windows下都能够通用那需要在某个头文件中:
#if defined(WIN32) || defined(WIN64) || defined(_WINDOWS)
    #ifdef  XXXXX_DLL
        #define XXX_EXPORT __declspec(dllexport)
    #else
        #define XXX_EXPORT __declspec(dllimport)
    #endif
#else
    #define XXX_EXPORT
#endif
然后按class XXX_EXPORT  CLASSNAME 的格式去进行想导出的类声明。
最后在pro文件中加入:
DEFINES    += XXXXX_DLL
//////
按以上的思路应该可以解决问题,最好参考qmake manual。
离线hyrish
只看该作者 2楼 发表于: 2007-05-30
新手看得不太明白
可否给大家提供一个简单的例子啊
谢谢啦!
离线aaniao999

只看该作者 3楼 发表于: 2007-05-31
我的比2楼简单点,但是只保证WINDOWS下面可以用,LINUX下面没试过
PRO里面修改:
TEMPLATE = lib

代码文件里面加 (因为我导出的是main函数,所以我写在main.cpp的一开始)
#ifdef Q_WS_WIN
#define MY_EXPORT __declspec(dllexport)
#else
#define MY_EXPORT
#endif

main函数改成这样
extern "C" MY_EXPORT void main()
{
//.......
}

具体的喊可以在QLibrary里面找找
快速回复
限100 字节
 
上一个 下一个