Q_DECL_EXPORT使用 共享库.md

用于客户端使用的共享库(如应用程序或其他库)中包含的符号——函数、变量或类——必须以特殊方式标记。

这些符号被称为公共符号,它们被导出或公开可见。

其余的符号从外部不应该可见。

Q_DECL_EXPORT:必须添加到编译共享库时使用的符号声明中。

Q_DECL_EXPORT:在编译使用共享库的客户端时,必须将Q_DECL_IMPORT添加到符号声明中。

在QtCreator+Qt的情况下用MinGW编译出来一般有.dll和.a,假如编译出来一个myplunge.dll,那么另外一个.a文件就是libmyplunge.a,这里说明一下,这个.a文件是一个“引入库”文件,就跟VS编译出来的.lib文件一样,请记住:MinGW是不能编译出.lib文件来的。而且,在上一段时间的实践中发现,其实MinGW编译是不需要.a文件,就是说不需要引入库文件,直接在.pro文件引入dll文件就行了。

假设我们要创建一个共享库mysharedlib,

  #if defined(MYSHAREDLIB_LIBRARY)
  #  define MYSHAREDLIB_EXPORT Q_DECL_EXPORT
  #else
  #  define MYSHAREDLIB_EXPORT Q_DECL_IMPORT
  #endif

在.pro 文件中添加

  DEFINES += MYSHAREDLIB_LIBRARY

在源文件中添加相应的宏定义

  MYSHAREDLIB_EXPORT void foo();
  class MYSHAREDLIB_EXPORT MyClass...
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值