Error Building Multiple Projects with Dependencies

I am having trouble getting more than one project to build when one project depends on the other. I have specified the includes from each project correctly and I don’t see any reason why the build wouldn’t work. I am compiling with ARM_EABI_GCC_DEBUG. In my workspace, Project B depends on Project A. When I build Project A it compiles with no errors. When I build Project B, it compiles with no errors, but it causes Project A to change and get an error. Project A suddenly says that one of the headers that one of its c files includes from its own (Project A) workspace doesn’t exist. It says "Include error: example.h: No such file or directory (when compiling null). The header file is obviously available, because when I compile Project A on its own it works. The dependencies between A and B seem to be correct, because when I compile Project B, it does not generate any errors for files from A missing. This seems to be a bug or something strange about Developer Studio. I am using 2.3.2. Any help would be much appreciated!

Strange behavior indeed.
To help understanding what’s going on, you could have a look to the build console, and compare the compiler calls between the builds. It will certainly give clues on why the build fails in some cases.
Something you can try is to change the used builder: DS can build projects either with the “Internal Builder” (by default) or a makefile builder.
We get quite better results with the makefile builder (even if it is sometimes a little bit slower than the internal one on Windows (but lightning fast on Linux!)).

Procedure:

  • for each project (both A&B), and each build configuration that you use, change the used builder in Project right-click menu > Properties > C/C++ Build > Tool Chain Editor: change the Current builder from [Sierra Wireless] Internal Builder to [Sierra Wireless] Make Builder.
  • delete the output directories
  • try to build again

The advantage is that complete and standalone makefiles are generated (you can even use them to build the project outside of DS): can make investigations easier.