ACE配置IPv6, VS静态编译ACE库

本文详细介绍了如何解决使用ACE库版本过低导致的链接错误问题,以及如何实现ACE库的静态编译。通过在config.h文件中添加特定宏定义,可以解决函数未找到的问题,并提供了静态编译的具体步骤和注意事项。

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

  使用自己下载的6.0.1版本只需在ACE_wrappers/ace/config.h(没有请自行创建)中添加#define ACE_HAS_IPV6再编译ACE_wrappers_vc8.sln即可, 下面贴出的是我自己的config.h, 具体config有哪些配置及其含义请参照ace目录下的readme文件

 

  之后维护别人写的使用了ace库的代码, 需要添加对IPv6的支持, 由于可能是该ACE库版本太低的缘故, 加上#define ACE_HAS_IPV6编译ACE库会报一个链接错误, 提示函数GetAdaptersAddresses未找到, msdn一下发现要链接上IPHLPAPI.lib, 在VS编译器上加上该库, 问题解决

  下面说一下静态编译ACE库, 同样在config.h文件中加上#define ACE_AS_STATIC_LIBS, 接着我的方法是打开ace_static.sln而非ace_vc8.sln进行编译, 编译出来如果是debug版本的名字应该为ACEsd.lib, 中间这个s表示为静态库, d表示为debug版本, 且没有了DLL生成, 之后在要使用该静态ACE库的项目中也添加上宏定义#define ACE_AS_STATIC_LIBS, 就可以使用该静态ACE库了

  另外说一下, config.h大家最好加上头文件预处理, 虽然我没加也没出问题, 还有就是define的时候判断下之前有没有已经define过, 这步倒是可有可无, 还有就是有中说法是#include "ace/config-win32.h"最好放在最后, 大家就宁可信其有, 或者出了问题不妨试试吧:)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值