Yesterday I updated to JUCE 8 and started working on a project without any issues. Everything was building and running smoothly. Later, however, I swithed to work on another project which refuses to build with the following error:
error C1189: #error: "This project was last saved using an outdated version of the Projucer! Re-save this project with the latest version to fix this error."
I’ve encountered this error before and usually when I’ve forgot to rebuild Projucer after updating JUCE, but this time nothing seems to work. I found this other post about the same issue but it doesn’t conclude with any definitive answers.
What might be causing this? Any ideas would be appreciated.
I usually keep a few versions of JUCE around, and I also keep a few versions of the Projucer that accompany those versions around, also - for precisely this scenario.
Don’t forget you can just use JUCE as a submodule to your main project - and that means the Projucer is included in your repo, too.
I don’t have a common JUCE directory for all projects, to ‘share’ the JUCE modules in an attempt, perhaps, to reduce disk usage or have all projects on the same JUCE version - in fact, I think its better to make JUCE a submodule and just include it, per project.
At least you’ll have most of what you need in order to compile things in the future, in one place.
I’m curious if anyone knows the possible drawbacks of commenting out the error. I can’t seem to get rid of it and the only way I can keep working on the project is to hide the error from the compiler.
Its not a good idea, imho. Its better to fix the problem and then adjust your methodology.
You’ve got two projects - a JUCE8 project, and (lets say) a JUCE7 project.
Both of those projects should have their own Projucer.app(.exe) in their own JUCE subdirectory, specifically for your project. Do you have that setup? If not, then the thing to do is take your JUCE7 project, add JUCE as a submodule, checkout 7.0.13, build the Projucer.app(.exe), open your JUCE7 project, adjust the module paths to your included JUCE subdirectory, and try again.
Then, do it again for your JUCE8 project, to be sure they are both now isolated from each other and clinical.
Another thing to adjust while you’re thinking about changing your methodology: is your project not managed with git already? The .jucer files are text (xml) that can be reverted if you ever get into this situation - and is where using source code version control can really save your butt.
I appreciate the reply, @ibisum. The problem wasn’t getting rid of the error, but rather not knowing the cause as I’d like to switch to JUCE 8 eventually.
Today I was finally able to fix the issue, and it turns out it was to do with my PACE copy protection setup. If some of you have the same issue in the future with PACE protected projects and not others, get in touch with their support team. Super friendly and helpful group of people.