神啊,用了一星期的时间终于在最新版MinGW上编译过了ACE6.0。狠啊,当初没有好好学习英语。
步骤:
1.安装MinGW及Eclipse: http://blog.csdn.net/sth02582003/article/details/6990178
2.到ACE官网下载ACE源码:http://www.cs.wustl.edu/~schmidt/ACE.html
3.启动MinGW Shell, 设置ACE_ROOT 及Path环境变量。
即使在通过windows->属性->高级环境变量设置过了下面两个变量,也要在MinGW Shel中重新设置一遍,否则有时会出现
一些错误的文件描述符,错误的文件结束标记等错误
export PATH=/c/mingw/bin:$PATH
export ACE_ROOT=/c/work/mingw/ACE_wrappers
4.Create a file called config.h in the $ACE_ROOT/ace directory that contains:
#include "ace/config-win32.h"
5.Create a file called platform_macros.GNU in the $ACE_ROOT/include/makeinclude directory containing:
include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU
6.添加ACE_wrappers\MPC路径到Path环境变量中。
7.在ACE_wrappers目录下执行下面的命令,生成Eclipse工程文件
(其中-value_template platforms="win32"用于指定平台类型,所有支持的平台类型在ACE_wrappers\MPC\templates\cdt6platforms.mpt下有定义)
mwc.pl -type cdt6 -value_template platforms="win32" -include ./bin/MakeProjectCreator/config ACE.mwc
8.执行完第七步后会在ACE_wrappers的各子目录下生成cdt_***的Eclipse工程目录。通过下面步骤将项目导入的Eclipse中
a. 打开Eclipse,依次点击 File->Import->General->Existing Project into workspace, 点击下一步
b. 填出框的Select root directory中选择ACE_wrappers所在的路径,不要选择Copy project into worksapce!
c. 点击next,Eclipse会扫描位于ACE_wrappers下的所有Eclipse工程文件。选择自己想编译的。点击下一步。将ACE工程导入到Eclipse中
d.导入完毕后如果发现文件的路径错误(在代码文件上鼠标右键->properties可以看到),就需要进入到Eclipse的workspace目录,找打项目
对应的.project文件,将其中所有的源文件路径修改正确。将工程关闭,重新打开就可以了.
e.点击Project->Build Project编译ACE。
大功告成!!!
其他问题:
1.旧版本的ACE(我试过ACE_wrappers5.5之前的)已经不能再最新的MinGW上编译的。因为以下原因:
a. 新版MinGW对头文件的位置做了调成
b. 新版MinGW中带的G++ 4.5.2会提示老版本ACE有一些语法错误
2.在进行 8.e步骤时,如果出现""不是可执行的系统命令,执行以下步骤
a. 在ACE项目上鼠标右键->properties->setting->Build Step
b. 修改Post-build steps, 指定正确的postbuild_win32_debug.cmd位置!
c. 如果想在ACE动态库和静态库之间切换,点击Build Arifact->Artifact type
d. 两个重要的参考文件:
\ACE_wrappers\ACE-INSTALL.html
\ACE_wrappers\MPC\docs\html\CDT6.html