导入DuiLib静态库出现无法解析的外部符号

本文解决了一个关于在MFC项目中导入DuiLib静态库时出现的无法解析外部符号的问题。通过在项目属性的预处理定义中添加UILIB_STATIC宏定义,解决了编译器将类标记为dllimport而非dllexport的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新建的MFC项目,导入DuiLib静态库出现无法解析的外部符号的问题,查看发现DuiLib选项里面已经定义了UILIB_STATIC,但是我的MFC项目并没有设置这个宏,导致导出类前面出现了__declspec(dllimport),UiLib.h里面定义如下

#ifdef UILIB_STATIC
#    define DUILIB_API 
#else
#    if defined(UILIB_EXPORTS)
#        if    defined(_MSC_VER)
#            define DUILIB_API __declspec(dllexport)
#        else
#            define DUILIB_API 
#        endif
#    else
#        if defined(_MSC_VER)
#            define DUILIB_API __declspec(dllimport)
#        else
#            define DUILIB_API 
#        endif
#    endif
#endif

 

解决办法是在自己的项目属性》C/C++》预处理定义里面添加UILIB_STATIC宏定义即可

转载于:https://my.oschina.net/u/816723/blog/841072

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值