自定义makefile使用Cygwin make在cmd中工作,但在Eclipse CDT中则不行

时间:2012-12-07 03:51:52

标签: eclipse makefile cygwin eclipse-cdt

我有一个简单的makefile在使用Cygwin make的CMD提示下正常工作。但是通过在Eclipse CDT中调用Make Target来解决问题。

我的makefile的内容如下:

all: aaa

aaa: bbb.o
    cc -o aaa.exe bbb.o

bbb.o: bbb.c
    cc -c bbb.c

clean:
    rm -f *.exe *.o

在CMD中,make all将构建并生成aaa.exe,而make clean将清除生成的EXE文件。

使用的make命令来自{myCygwinFolder}\bin\make.exe。这可以通过CMD中的which make进行检查,这会得到/usr/bin/make。此外,Cygwin路径也添加到我的系统路径中。

但是当我尝试设置标准Make C项目时,make clean就不起作用了。实际上,我已为我的项目make allmake clean设置了2个制作目标。发生的事情是,无论我跑哪一个,我总是遇到以下错误:

Error launching builder (make all )
(Exec error:The system cannot find the file specified.
)

Error launching builder (make clean)
(Exec error:The system cannot find the file specified.
)

在网上搜索并尝试了一些后,我发现Eclipse似乎无法正确找到构建器/ make。

所以,我转到项目属性,Builders选项卡并创建了一个指向我的{myCygwinFolder}\bin\make.exe的新构建器。

通过此修复,我可以使用Make Target make all进行编译。但是当我使用Make Target make clean进行编译时,Eclipse仍然会尝试运行Make Target make all

如果我将clean section移动到makefile的开头。两个Make Target都将运行make clean。似乎all / clean标签没有正确传递给Cygwin make,而Eclipse只是在makefile中创建了第一个任务。

Eclipse中的项目结构设置是:

ProjectRoot
  |__folderA
       |__makefile
       |__bbb.c
       |__*.*
  |__folderB

任何人都可以帮助在Eclipse中设置正确的Make Target吗?欢迎提出任何意见。

1 个答案:

答案 0 :(得分:0)

问题是道路。当你在eclipse的windows环境中时,你需要调整路径以确保可以找到make。在我使用CDT的日子里,我经常不得不更改默认的构建命令来解决这个问题