# JUCE\_ObjCExtraSuffix question

**URL:** <https://forum.juce.com/t/juce-objcextrasuffix-question/4862>\
**Category:** Audio Plugins\
**Created:** [February 9, 2010, 9:45am UTC](https://forum.juce.com/t/juce-objcextrasuffix-question/4862 "2010-02-09T09:45:23Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![atom](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/atom/32/113_2.png) [@atom](https://forum.juce.com/u/atom)\
**Post date:** [February 9, 2010, 9:45am UTC](https://forum.juce.com/t/juce-objcextrasuffix-question/4862/1 "2010-02-09T09:45:23Z")

</div>

I have situatuin where part of my plugin is linked to a static library (a small framework i created), both the static library and the plugin use JUCE. I understand that i have to re-build JUCE (amalgamated) each time i rebuild the plugin. I use a singleton in my static library. DO i need to apply the same workaround for class naming in that library ? Will this cause issues later on, so far i’m unable to load the same plugin instance twice. I have a lot of different plugins that use the same static library, i can load inly one into Live. Reaper seems to be handling this much better and causes no issues. What is the best way to do this, shoul i perhaps add the code of the static library to each plugin project and rebuld (will it help?), will the Singleton be a problem?

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [February 9, 2010, 11:07am UTC](https://forum.juce.com/t/juce-objcextrasuffix-question/4862/2 "2010-02-09T11:07:27Z")

</div>

Well, yes, if you’ve got a static lib that has juce inside it, then it’ll contain obj-c classes, and those will need to have unique names. Unless you can find a way to make the linker use your lib internally without exposing all its obj-c classes to the outside world, but I don’t think that’s really how obj-c works.

If I were you I’d just pull your library into the plugin as source-code rather than as a lib - it just makes the whole thing so much less complicated.

---

<div class="post-metadata">

**Author:** ![atom](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/atom/32/113_2.png) [@atom](https://forum.juce.com/u/atom)\
**Post date:** [February 9, 2010, 11:17am UTC](https://forum.juce.com/t/juce-objcextrasuffix-question/4862/3 "2010-02-09T11:17:57Z")

</div>

I’ll do that.

I have a more general question, what does JUCE\_ObjCExtraSuffix actually do, i saw in the source it uses some sort of a Macro definition, i was wondering does this affect my JUCE classes or just you obj-c code, also what format is it, it never says really should it be a number a string or what? Also can i define it as a global define for a project and not set it in my include files, will this work (i use per project settings, and the include files are the same so it would be stupid to add this prefix to the include files)

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [February 9, 2010, 1:09pm UTC](https://forum.juce.com/t/juce-objcextrasuffix-question/4862/4 "2010-02-09T13:09:09Z")

</div>

It’s used to create the names of all the obj-c classes that are used internally in Juce. You could indeed use a global define - it’ll work as long as the amalgamated files have the definition set.
