Eclipse CDT 生成的 Makefile 在哪里?

33

我使用Eclipse(helios) CDT构建了一个C++的Hello World项目,编译成功。但我想查看CDT生成的Makefile文件,但是在项目文件夹/debug/release文件夹或src文件夹中都找不到它。请问这个Makefile在哪里可以找到?

4个回答

19

18

如果你使用默认设置,当前构建器为CDT内部构建器,则没有make文件。 如果你选择当前构建器为GNU make,你将在debug文件夹中看到makefile。


我没有调试文件夹。 - JohnyTex

6

我能想到的唯一原因是Makefile没有被创建。点击你的项目,进入菜单项目 -> 属性,在左侧窗格中选择C/C++ Build,确保自动生成Makefile复选框已被选中。


然后呢?何时应该弹出makefile? - JohnyTex

5
默认情况下,您应该有 [workspace]/[project folder]/Debug/makefile。您对默认环境做了任何更改吗?
以下是Helios(Windows/Cygwin)安装的HelloWorld示例项目 makefile:
################################################################################ # 自动生成的文件,请勿编辑! ################################################################################
-include ../makefile.init
RM := rm -rf
# 所有参与构建的源文件在这里定义 -include sources.mk -include subdir.mk -include src/subdir.mk -include objects.mk
ifneq ($(MAKECMDGOALS),clean) ifneq ($(strip $(C++_DEPS)),) -include $(C++_DEPS) endif ifneq ($(strip $(C_DEPS)),) -include $(C_DEPS) endif ifneq ($(strip $(CC_DEPS)),) -include $(CC_DEPS) endif ifneq ($(strip $(CPP_DEPS)),) -include $(CPP_DEPS) endif ifneq ($(strip $(CXX_DEPS)),) -include $(CXX_DEPS) endif ifneq ($(strip $(C_UPPER_DEPS)),) -include $(C_UPPER_DEPS) endif endif
-include ../makefile.defs
# 将这些工具调用的输入和输出添加到构建变量中
# 所有目标 all: HelloWorld.exe # 工具调用 HelloWorld.exe: $(OBJS) $(USER_OBJS) @echo '正在构建目标:$@' @echo '正在调用:Cygwin C++ 链接器' g++ -o"HelloWorld.exe" $(OBJS) $(USER_OBJS) $(LIBS) @echo '完成构建目标:$@' @echo ' '
# 其他目标 clean: -$(RM) $(C++_DEPS)$(OBJS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) HelloWorld.exe -@echo ' '
.PHONY: all clean dependents .SECONDARY:
-include ../makefile.targets

谢谢。我在整个电脑上进行了搜索,但找不到它。可能是动态生成的并自动删除了? - firsttestcdt
1
很奇怪,即使我清理了所有CDT项目,它们的makefile也没有被删除。 - belwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接