我在跑
eclipse juno Service Release 2 Build id: 20130225-0426 与此 CDT 配置
这个操作系统:
(截断的输出uname -a
):Linux 3.2.0-51-generic #77-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
我创建了一个 HelloWorld C++ 项目,如下所示:
- 文件->新建->C++ 项目
- 项目类型:可执行空项目
- 工具链:跨 GCC
- 配置:已检查调试和发布
然后我创建一个Main.cpp
包含 hello world 代码的 C++ 源文件。
然后我可以使用锤子图标进行编译。我选择在 Release 模式下编译。该程序运行良好(在 Eclipse 中或在命令行中)并打印“hello”。如果我修改代码以打印出“hello there”,我可以用锤子重新编译,程序仍然可以正常运行并打印出“hello there”。
但是,如果我修改代码以打印出“hello there you”,转到 Release 目录 ( /home/user/workspace/HelloWorld/Release
) 并键入 make,我会收到以下消息:make: Nothing to be done for 'Main.d'
.
在 Release 目录中有一个名为 makefile 的文件,但它的行为不像普通的 makefile。我希望这个 makefile 是这样的,当代码发生更改并且您键入 make 时,代码实际上会被重新编译。如果我键入make clean
后跟make
,代码会被重新编译,但这对于大型项目来说效率低下。
你知道为什么 eclipse 生成的 makefile 会这样吗?非常感谢。