Undefined Symbol: createPluginFilter() error

Ive gotten past most of the hard work i just can’t seem to get my build to work. (i’m a noob at this, be gentle :slight_smile: )

I can’t seem to link my audio processor…

this is the error code.

Undefined symbols for architecture x86_64:
  "createPluginFilter()", referenced from:
      createPluginFilterOfType(juce::AudioProcessor::WrapperType) in libNSFRDistortion.a(include_juce_audio_plugin_client_utils.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation) 


Here is my coding


// This creates new instances of the plugin..

AudioProcessor* JUCE_CALLTYPE createPluginFilter()


**return** **new** NsfrdistortionAudioProcessor();


Please help! what am i doing wrong?

If you generated a project with the Projucer audio plugin template, builds should just work in the target IDE like Visual Studio or Xcode. Are you trying to build the plugin with the Projucer itself or something?

I’m in xcode 11 currently, but the wild continues to fail.

Hi! I wanted to ask if you found a fix for this at all

What was the solution?

To me, the original issue looks like a misconfigured project.

For us to help you, please paste the exact text of the error message that you’re seeing. It would also be useful to know how you generated your project, and how you’re attempting to build it.

I added
juce::AudioProcessor* JUCE_CALLTYPE createPluginFilter() { return new MyPlugin(); }
solved the link error for me

Hello again !

I have the error:

Undefined symbol: createPluginFilter()
only when arm64 was selected.

I guess only arm64e should work. I set $(ARCHS_STANDARD) (-> Apple Silicon, Intel) in XCode (or directly in Projucer). I compile. I now get the following warning:

None of the architectures in ARCHS (arm64, x86_64) are valid. Consider setting ARCHS to $(ARCHS_STANDARD) or updating it to include at least one value from VALID_ARCHS (arm64e) which is not in EXCLUDED_ARCHS (i386, x86_64, arm64).

This builds sucessfully but does not work.

Me again…

So apparently,
$(ARCHS_STANDARD) is not the same as arm64e in XCode architectures settings.
One should maybe use arm64e when working on a apple silicon.
But then I get back to the link error:

Undefined symbol: createPluginFilter()
ld: warning: ignoring file /my_path/, building for macOS-arm64e but attempting to link with file built for macOS-x86_64