首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cygwin make找不到cygwin命令

Cygwin make找不到cygwin命令
EN

Stack Overflow用户
提问于 2010-07-21 17:42:16
回答 2查看 3.2K关注 0票数 1

在尝试安装构建服务器时,我遇到了一个有趣的问题,所有的cygwin命令都可以从DOS机器上运行,但有时从make调用时却不起作用。更奇怪的是,一些像“清理”这样的目标是工作的,而像“所有”这样的其他目标则不是。

这是一个有代表性的makefile摘录。报价已经冲刷了格式,但标签应该在它们应该在的地方,相信我:

代码语言:javascript
复制
 .PHONY: all 
 all: update_autoconstants
    /usr/bin/rm -f $(OBJ_DIR)/myfile1.txt   
    rm -f  $(OBJ_DIR)/myfile2.txt   

 .PHONY: clean 
 clean:     
    rm -f $(OBJ_DIR)/*.*

请注意,在“all”中,一个rm调用有完整路径,而另一个没有路径。还要注意,clean的rm调用没有路径。

对此,对“make -C makefile all”的响应是:

代码语言:javascript
复制
/usr/bin/rm -f ../../obj/myfile1.txt 
rm -f ../../obj/myfile2.txt 
make: rm: Command not found 
make: *** [all] Error 127

即。完整路径有效,no-path无效。然后开始我的头脑旋转的是make中的“干净”目标,没有路径运行良好。不仅仅是cygwin命令,make也找不到编译器。虽然设置了环境变量path,但只在make中设置了PATH,这在DOS提示符下工作得很好。

代码语言:javascript
复制
C:\>cygpath --unix c:\programme\cygwin\bin\rm  
/usr/bin/rm

该机器在cygwin ESX上的虚拟机中运行Windows Server2003德语,cygwin安装已于昨天完成,安装在c:\programme\cygwin\中,其他一切都是干净的VMWare安装。

有什么想法吗?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-22 16:47:56

与其说是一种解决方案,不如说是一种变通办法--我们让所有的makefile都使用他们需要的exe文件的绝对路径,这在任何情况下都比搜索路径并获取你找到的文件要好一点。

为了拯救某人,最好调用cygwin的bin目录中的一些Googling命令:

代码语言:javascript
复制
CYGWIN_EXE_PATH = /usr/bin
RM        = $(CYGWIN_EXE_PATH)/rm.exe
.PHONY: clean
clean:
    $(RM) -f $(OBJ_DIR)/*.*

类似地,程序文件目录中的文件如下:

代码语言:javascript
复制
COMPILER_DIR = "$(PROGRAMFILES)/TASKING/c563 v3.6r1"

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-05-06 16:18:25

我也有过同样的经历。

make在makefile中找不到rm。

我的变通方法是在bash中运行makefile。之前我只是在windows cmd机器上运行make。这解决了我的问题,但也带来了新的问题。在make过程中创建的一些文件的权限设置非常奇怪。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3297953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档