最近在使用ACE的过程中,发现5.6版本存在着编译错误的问题,于是去了它的商业版发布站点一查究竟。具体的三种解决方法如下所述。但如果你使用的是最新的5.6.6版本,就没有这种麻烦了。
http://www.riverace.com/newsletters/October2007.htm
Possible App Build Errors with ACE 5.6
Some customers have experienced a build error while building their applications after upgrading to ACE 5.6. This article explains the issue, its origin, and how to resolve the problem. It applies to builds using GNU make only. Microsoft Visual Studio users are not affected by this issue.
When upgrading ACE to version 5.6, you may encounter this error while building your applications: make: *** No rule to make target `__prebuild__', needed by `all'. Stop.
The issue was introduced as a side-affect of properly supporting the MPC prebuild
keyword for GNU make-type targets. The error occurs for Makefiles that make use of ACE's make scheme in ACE_wrappers/include/makeinclude
but that are not generated from MPC projects.
There are three ways to resolve this problem if you encounter it:
- If you use MPC to generate your makefiles, regenerate them with the MPC that's in ACE 5.6. This will add the __prebuild__ target.
- Add a no-op __prebuild__ target to your makefiles (or some common file they include).
- In the rules.common.GNU file, add a line before the "all" target that says only
.PHONY: __prebuild__
The problem is resolved within ACE in beta kits ACE 5.6.2 and later and is also included in Riverace's first ACE 5.6-based Fix Kit. If you are a support customer, you can also contact Riverace for an update.