Hi all,
I’m building a JUCE app with a manual Xcode project (no Projucer) and hitting 2208 duplicate symbol errors at link time, all originating from SheenBidi.
Setup:
-
macOS 26.0.1
-
Xcode 26.2
-
JUCE: latest stable
-
Manual Xcode project, no Projucer
What’s happening:
The build fails at link with 2208 duplicate symbols. The error line in the build log is:
Link SCREE_BROOD (arm64) — ✗ 2208 duplicate symbols
The compile step above it shows include_juce_graphics_Sheenbidi.c compiling successfully (0.2s, 1 warning).
What I tried:
The original file was include_juce_graphics_Sheenbidi.mm. I was getting void* cast errors because C++ is stricter than C about these. The suggested fix was to rename it to .cso it compiles as plain C rather than Objective-C++. The cast errors went away but now I get the duplicate symbols.
My suspicion is that another amalgam file (possibly include_juce_graphics.mm) is also including SheenBidi source internally, so the symbols are being defined twice. But I don’t want to start hacking amalgam files without knowing what I’m doing.
What’s the correct way to handle SheenBidi in a manual Xcode project?
Thanks
