2

我在跑

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 会这样吗?非常感谢。

4

1 回答 1

3

尝试 $make all,而不是$make它应该可以工作。

于 2013-10-23T20:52:27.660 回答