日期:2014-05-16  浏览次数:21329 次

奇怪!make可以,make install 失败
我用ubuntu12.04安装ACE,基本都按照官方的安装进行,make都完全没问题,make install报错:
GNUmakefile:21: /include/makeinclude/macros.GNU: 没有那个文件或目录
make: *** 没有规则可以创建目标“/include/makeinclude/macros.GNU”。 停止。

我打开GNUmakefile,看了21行,是这样的:
include $(ACE_ROOT)/include/makeinclude/macros.GNU

看样子好像是环境变量$(ACE_ROOT)没有设对,可是我在etc/profile中设置了环境变量啊,已经重启过,并且通过echo $ACE_ROOT能够看得到路径,我在命令行输入
cat $ACE_ROOT/include/makeinclude/macros.GNU
也能看到内容,咋GNUmakefile就不认识呢?
只有一个地方不一样,就是环境变量我用$ACE_ROOT[没加括号]而不是$(ACE_ROOT),难道环境变量还有这说发吗,我记得以前安装都是正常的呀,
用echo $ACE_ROOT能看到,echo $(ACE_ROOT)就看不到,求解!
那为啥make可以,而make install 就不行了呢,不就是多一个复制操作吗,并且我的目录都把权限开到最高了!

------解决方案--------------------
1.echo $ACE_ROOT能看到,echo $(ACE_ROOT)看不到,是因为:
取变量值的用法:${变量名}或${变量名},而$(命令名)是去一个命令执行结果;
ACE_ROOT是一个环境变量,只能去它的值:${ACE_ROOT}或$ACE_ROOT,而不能取它执行结果的值,因为他不是可执行的。
2.make可以,而make install不行,是因为make一般指进行源码的编译和链接,生成可执行文件,make install是将编译好的程序复制到实现部署的目录结构中,至于为什么install出错楼主慢慢查吧
------解决方案--------------------
你直接把include $(ACE_ROOT)/include/makeinclude/macros.GNU改为绝对路径试一下...