在Qt5和mingw32中使用ACE_wrappers

1.利用MSYS2编译ACE

1.1配置MSYS2的环境

下载msys2:http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe

安装和打开msys2 不要选下面的"Mingw-w64 32 bit"和"Mingw-w64 64 bit"

添加make程序

pacman -S make

添加Qt5自带的mingw32路径(D:\Qt\Qt5.11.1\Tools\mingw530_32\bin)

export PATH=${PATH}:/d/Qt/Qt5.11.1/Tools/mingw530_32/bin

2.编译ACE_wrappers

按常规编译方法即可

3.Qt的.pro文件

在Qt的.pro文件中加入以下的配置信息(不添加宏定义ACE_DOESNT_DEFINE_MAIN会出现"redefined main"的告警!):

win32:ACE_ROOT = D:\ACE
win32:INCLUDEPATH += $$ACE_ROOT\include
win32:DEFINES += ACE_AS_STATIC_LIBS
win32:DEFINES += ACE_DOESNT_DEFINE_MAIN
win32:LIBS += $$ACE_ROOT\lib\libACE.a -lws2_32 -lmswsock -liphlpapi -lwsock32 -lnetapi32

另外在调用的地方加入ACE::init()和ACE::fini()。由于添加了宏定义ACE_DOESNT_DEFINE_MAIN会出现"WSA Startup not initialized"的错误提示!而且服务器不能监听。

#ifndef _SCK_SERVER_H
#define _SCK_SERVER_H

#include <ace/Init_ACE.h>

class Sck_Server
{
public:
    Sck_Server()
    {
        ACE::init();
    }
   ~Sck_Server()
    {
        ACE::fini();
    }
    int start() const;
    void stop() const;
};

#endif /* _SCK_SERVER_H */

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值