游戏工程里的使用C++静态库与动态库

831 篇文章 16 订阅
89 篇文章 1 订阅

假设我们有3个工程及其工程类型:

CORE              DLL

ENGINE           DLL

GAME             EXE

D3DRENDER      DLL

其中D3DRENDER是GAME动态载入的,其需要链接CORE,ENGINE

这是一个很常见的模式,但是不好的是,因为CORE和ENGINE均是DLL,代码中的Symbol都被导出才可使用。任何人使用DEPENDENCE工具就可以将DLL中引用的东西查看的清楚,虽然这不至于造成技术泄漏,但从速度和DLL大小来说都是不划算的。

现在很多游戏主exe一般都是10M+甚至20M+的大exe,这都是使用静态链接而成。但是对代码结构也必须做出一定的调整。所有工程必须都是静态库,这样才能保证像CORE这样的静态库中的全局/静态变量不至于被链接2份而造成内存段逻辑错误。

当然,使用全静态库还需要注意一点:所有的lib都是在最后的game工程里来做链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值