Why is one project always recompiling everything?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Why is one project always recompiling everything?

ソリューションへジャンプ
1,346件の閲覧回数
paulderocco
Contributor III

In KDS3.0.0, I have a workspace with a number of K64-based C language projects. In one of them, whenever I tell it to build the project, it always recompiles everything, including the long list of automatically generated files. I created this project by duplicating an existing project and then editing it. All the other projects (including the one I copied from) work correctly, only recompiling things whose prerequisites have changed. I've looked through every single item in the project properties, and nothing looks amiss. It's behaving as though the makefiles have some spurious dependency in them on some file with a timestamp in the future, but that seems pretty unlikely. I've read through all the .mk files, and don't see anything that looks funny.

 

Is there a way to get the make utility to dump its dependency analysis to a file somehow? I know most makes have a command line option for outputting this info to stdout, but I'm not typing "make", I'm clicking a button with a hammer in it.

 

Or has anyone else seen this problem, and found a solution?

ラベル(1)
1 解決策
3 返答(返信)
920件の閲覧回数
paulderocco
Contributor III

Yes, that was it. When I duplicated a different project, it still referred to that old project under "Refresh Policy". I had deleted that reference when I went through the project properties, but had neglected to create a new reference to the new project. When I added that reference, it only took one more recompile and then everything settled down.

The reason I hadn't added a new reference is that I really had no idea what "Refresh Policy" meant. What does it mean to "refresh a resource"? Compared to other IDEs, like Visual Studio, or the old pre-Eclipse CodeWarrior, Eclipse is about 80% incomprehensible stuff that you have to be a guru to understand. All I now know about "Refresh Policy" is that it fixes this problem. I still don't know what "refreshing" actually does. The help file has a page on the "Builder Settings" tab and the "Behaviour" tab, but not on the "Refresh Policy" tab. But I guess that's a complaint for the Eclipse.org forums.

I don't know why it should be necessary to tell a project to refresh itself. If refreshing is something that is needed to make things work, that should be automatic. The dialog box should only be necessary to specify other non-default things that might need to be refreshed, that Eclipse can't know about. But I guess that's a complaint for the Eclipse.org forums, too.

0 件の賞賛
返信
920件の閲覧回数
BlackNight
NXP Employee
NXP Employee

Hi Paul,

as mentioned in that post, the behaviour (as it is currently in Eclipse Luna/CDT) is very likely a bug. It seems to me that it is related how CDT is dealing with external make files, and as Eclipse does not know what that external make file does, it has this 'refresh policy' setting. In my view this makes sense so Eclipse does no have to refresh 'the world', because that might take too long. Especially if the project has many links or many folders.

But it is wrong that this impacts the next run of the make utility, so this is a bug to me.

Erich

0 件の賞賛
返信