views:

36

answers:

1

I think it is quite normal to have more than one binary in a project. However, with Eclipse CDT I don't know how to set up the IDE to get things done.

I know I can create several projects - one per binary. And I know I can set the dependencies per project. However, I cannot regard them as one project in Eclipse. If I'd like to share the code with a version control system (like svn), each developer has to import the projects separately.

What I miss is something like the Solution (sln file) in Visual Studio. Should I create a single project and create the make files by myself?

I haven't tried it out yet, but there is this 'project set' which can be ex- and imported. Is this the solution? Can this be put into version control?

My goal it to put everything under version control, not only subprojects. I cannot imagine that CDT makes only sense for single-binary applications.

How can I work properly?

A: 

I am quite sure CDT doesn't support sub-projects, which leaves you pretty much with:

  • one workspace per "set of projects"
  • one project per binary (like you mention in your question)
  • project dependencies (like you mention in your question)

In term of version control, that means:

for each project needing a shared library project.
In short, that means putting under version control various components (set of files), with one referencing specific version of others (that list of specific versions of other components is called a "configuration", based on a component-based approach development)

VonC
Would you see this as an disadvantage of Eclipse or CDT?I would be happy if Eclipse could create the makefiles. And I would like to have that an general software project does not necessarily be an Eclipse project.
Robert Schneider
@Robert: The CDT build system is still limited (see http://cdtdoug.blogspot.com/2010/02/understanding-cc-build-systems.html), but a tool like Maven could manage what you want (with a plugin like Freehep NAR: http://java.freehep.org/freehep-nar-plugin/intro.html)
VonC