Duilib静态库的编译

#Duilib静态库的编译

准备

首先需要从github下载duilib源码 下载地址
下载完毕后将它解压。

##开始编译##
使用visual打开\duilib-master\DuiLib下的DuiLib_Static.vcxproj,然后就直接生成。

##使用##
默认生成目录在\duilib-master\DuiLib\Build里面,根据你生成的项目版本,我生成的Debug_u就直接复制DuiLib\Build\Debug_u\DuiLib_Static_ud.lib到需要的项目中。

拷贝到需要的项目后直接使用
#pragma comment(lib, "DuiLib_Static_ud.lib")
就可以了,但是要记得
#include "UIlib.h"

##错误##
###1###
如果出现类似与这样的错误,那么就是你的运行库设置的不对,Duilib静态库默认的是MTd,我们需要把它调成一样的。

就像这样:

###2###
如果出现这样的错误,就应该是没有设置好宏。

error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall DuiLib::WindowImplBase::WindowImplBase(void)" (__imp_??0WindowImplBase@DuiLib@@QAE@XZ),该符号在函数 "public: __thiscall MainClass::MainClass(void)" (??0MainClass@@QAE@XZ) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual __thiscall DuiLib::WindowImplBase::~WindowImplBase(void)" (__imp_??1WindowImplBase@DuiLib@@UAE@XZ),该符号在函数 "public: virtual __thiscall MainClass::~MainClass(void)" (??1MainClass@@UAE@XZ) 中被引用
fatal error LNK1120: 2 个无法解析的外部命令

打开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

再联系报错的内容
error LNK2019: 无法解析的外部符号 "__declspec(dllimport)
很明显需要添加上宏:UILIB_STATIC
##最后##
如何需要Duilib的Git地址https://github.com/duilib/duilib.git

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值