Windows中ACE在MinGW下的安装

注:下面文件的安装位置可由个人决定,并不一定要按照文中的目录结构安装

1.下载安装MinGW
老巢:http://www.mingw.org/
下载:http://www.mingw.org/download.shtml
最终下载:http://sourceforge.net/project/showfiles.php?group_id=2435

放在第一个的是Automated MinGW Installer,这个在Windows下可以帮助自动安装所需组件,但是尝试了几次都发现下载速度极其慢,所以放弃使用这种方式,但是不说说不可以利用它。点击MinGW-5.1.3.exe(目前是这个版本)它会检查网上组件的版本,同时在目录下生成mingw.ini文件,进去看看发现就是它准备下载的各个组件的版本,有[current],[previous],[candidate]几种,最新的稳定版本就是[current]把,所以在下载页面按照[current]里面写的版本号把需要下载的文件都下载下来。我下载的有:
binutils-2.17.50-20060824-1.tar.gz
gcc-core-3.4.5-20060117-1.tar.gz
gcc-g++-3.4.5-20060117-1.tar.gz
gcc-objc-3.4.5-20060117-1.tar.gz
mingw-runtime-3.14.tar.gz
mingw32-make-3.81-2.tar.gz
w32api-3.11.tar.gz
然后把这些都解压缩到某个特定位置,比如D:/MinGW

另外,在相同页面下载MSYS和msysDTK,安装到D:/MSYS

2.下载安装ACE
老巢:http://www.cs.wustl.edu/~schmidt/ACE.html
下载:http://download.dre.vanderbilt.edu/
下载一个你需要的zip解压缩(时间有点长),使ACE的根目录为D:/ACE_wrappers

3.编译ACE(会花很长时间)
如果你是和我使用的同样的目录,那么D:/ACE_wrappers/ACE-INSTALL.html是一个很详细的ACE安装文档,如果不愿意看英文,那就看看下面的:

打开MSYS命令行窗口(D:/MSYS/msys.bat 开始菜单里面应该也有了),设置环境变量:
% export PATH=/d/mingw/bin:$PATH
% export ACE_ROOT=/d/ACE_wrappers

以后我们用$ACE_ROOT指代目录D:/ACE_wrappers

在 $ACE_ROOT/ace 下创建文件config.h,内容如下:

#include "ace/config-win32.h"

如果是在Windows 9X/ME下编译ACE,还需要把下面这行加在上文 #include 行的前面:

#define ACE_HAS_WINNT4 0

在 $ACE_ROOT/include/makeinclude 行创建文件 platform_macros.GNU,内容如下:

include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU

注意上面的$(ACE_ROOT)必须原样书写,GNU make会自动从环境变量里拿相应的值替换。

如果Windows缺少Winsock 2,需要在上面include前面添加一行:

winsock2 = 0

在MSYS命令行窗口,运行如下命令编译ACE:

% cd $ACE_ROOT/ace
% make

这将创建libACE.dll和libACE.a,如果还需要生成静态库,运行如下命令:

% make static_libs=1

根据Win32查找动态链接库的规则,如果要在MSYS窗口下运行ACE程序,需要在PATH环境变量里加上libACE.dll的路径:

% export PATH=/d/ACE_wrappers/ace:$PATH

4.测试编译结果(会花很长时间)

% cd $ACE_ROOT/tests
% make
% perl run_test.pl

5.使用ACE
增加Windows环境变量ACE_ROOT,值为D:/ACE_wrappers
path中加入D:/MinGW/bin;D:/ACE_wrappers/bin;
D:/MinGW/bin中的mingw32-make.exe复制一份到并改名为make.exe

写一个最简单的程序main.cpp
#include "ace/OS.h"
#include <iostream>

using namespace std;

const ACE_Time_Value max_tm(24*60*60);

int ACE_TMAIN(int argc, char *argv[])
{
 // 取当前系统日期
 ACE_Time_Value today = ACE_OS::gettimeofday();
 
 cout << "当前日期秒数 = ";
 cout << today.sec() << endl;
 
 cout << "明天此时秒数 = ";
 today += max_tm;
 cout << today.sec() << endl;
 
 getchar();
 system("PAUSE");
 return(0);
}

当前目录的Windows命令行下输入:
g++ -o main main.cpp -I%ACE_ROOT% -I./ -L%ACE_ROOT%/ace -lACE -mthreads
如果你是一直在MSYS命令行窗口工作,cd到main.cpp所在的目录,用
g++ -o main main.cpp -I$ACE_ROOT -I./ -L$ACE_ROOT/ace -lACE -mthreads
(PS:就是因为在Windows命令行用了后面那个命令,浪费了我n长时间)

如果成功生成了main.exe那就大功告成了。


参考文章:
$(ACE_ROOT)/ACE-INSTALL.html
http://www.devfront.com/?q=node/275
http://bigwhite.blogbus.com/logs/5894154.html

===================================================================
花费了很长时间,刚刚装好而已,很多东西还不明白,继续努力...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值