很多人在编译ACE自带的例子时会出现如下错误:
AO will not be built due to the following missing library: ACE
他们的编译步骤是进入 ACE_wrappers/examples 目录,然后执行 make 命令,然后会出现上面的错误。
实际上这种做法是错误的,在编译ACE时,这些实例在你执行 make 的时候已经编译好了,
编译好的结果在:ACE_wrappers/objdir/examples 目录下。例如我们可以运行 /sdb1/softwares/ACE_wrappers/objdir/examples/Reactor 下面的例子来测试。
其实,我们可以看到examples目录下并没有Makefile文件,而只有 Makefile.in,Makefile.am,
他们的作用是:automake 读取 Makefile.am 来产生 Makefile.in, configure 读取 Makefile.in 来产生 Makefile ,
在我们编译ACE执行 ./configure 时,生成了 Makefile, 使用这个Makefile编译才是正确的方法。
关于Makefile,有2篇文章说的很好: