Linker error - unconsistent compiling options


I am using the libopenshot video editing library in C++, developing in Linux. This library has JUCE as a dependency. Now, when compiling and linking my project, I get a linking error: undefined reference to `juce::this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_debug_mode::this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_debug_mode()’

Looking at the source, this linker error is apparently meant to arise if different compile units across my program are compiled with different debug/release settings (which means different values for JUCE_DEBUG macro, as far as I know). But in every compile unit I have, I have set JUCE_DEBUG equal to 1.

What might be causing this error?

Are you building libopenshot yourself or are you using a pre-built binary? In either case, JUCE_DEBUG must be the same in libopenshot and in your program.