5

我发现自己使用 Eclipse 的模式很奇怪。我有一个项目依赖于 Eclipse 项目中未正确考虑的资源,因此如果我只更新依赖项中的标头,Eclipse 拒绝在命令时构建,显然是因为它认为没有必要。结果,我最终不断地在文件中添加一个空格并保存以让 CDT 进行我的竞标。

虽然可以将依赖项集成到项目设置中,但项目偶尔会被 CMake 自动生成工具(我对修补不感兴趣)重写,这将覆盖配置,并要求我重新配置依赖项再次和再次。

我想做的只是告诉 Eclipse 它应该忽略它认为应该发生的事情并遵守构建命令,并让底层的 make 系统完成它的工作(确定应该构建什么和不应该构建什么) )。

TL;博士:

  • Eclipse CDT 尝试通过观察文件的新鲜度来判断是否构建
  • 它只监视正确设置的依赖项
  • 我不想设置依赖项,因为当我将文件添加到项目时,项目经常被 CMake 覆盖

任何人都知道如何覆盖 CDT 的决定并强制构建?

4

3 回答 3

2

我面临同样的问题,我正在分两部分开发程序(两个静态库),如果我对一个库进行重建,Eclipse 不会更新另一个,因为它显然不会关注静态的变化图书馆。

解决方案是在每次构建之前“清理”项目(右键单击项目 -> 清理项目),然后进行构建。这有效地删除了所有以前的构建结果并从头开始构建。我还没有想出如何通过单击一个按钮来做到这一点,但这对我有用。

于 2012-04-23T16:14:44.887 回答
0

您使用的是 Eclipse 的内部构建器吗?因为,在使用外部构建器设置时,我没有遇到您提到的任何问题。即使在 Eclipse 之外编辑某些文件时,尽管 Eclipse 完全不知道这些更改,构建仍然可以工作。

Eclipse C/C++ 构建项目属性

于 2012-04-23T15:04:53.390 回答
0

您可以将以下内容添加到您的makefile吗?

FORCE:

%.o : %.cpp FORCE
    $(CXX) -c $(CXXFLAGS) $< -o $@

FORCE 是一个空目标,因此总是新鲜的。因此,无论何时FORCE包含在依赖项列表中,它们都将在所有构建中重新构建。

于 2012-04-21T04:01:01.230 回答