我有一个简单的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 all
和make 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吗?欢迎提出任何意见。
答案 0 :(得分:0)
问题是道路。当你在eclipse的windows环境中时,你需要调整路径以确保可以找到make。在我使用CDT的日子里,我经常不得不更改默认的构建命令来解决这个问题