Delay Plugin - Undefined Symbols for Architecture x86_64

Hi everyone,

I’m building a delay plugin using JUCE and I’m now getting the following Xcode error when trying to compile my code after adding linear interpolation to the delay time parameter.
I’m very new to C++, Xcode and Programming in general, so I have no idea how to solve this, and I’ve tried googling but can’t find anything that fixes it:

Undefined symbols for architecture x86_64:
“DelayProjectAttempt3AudioProcessor::lin_interp(float, float, float)”, referenced from:
DelayProjectAttempt3AudioProcessor::processBlock(juce::AudioBuffer&, juce::MidiBuffer&) in libDelayProjectAttempt.a(PluginProcessor.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

It happens on every build target and is temporarily resolved when I get rid of the lin_interp function, but just renaming it and running again doesn’t help. I’ve also tried cleaning the project to no avail.

Thanks for any help!

Make sure that in PluginProcessor.cpp, the function lin_interp is defined with the proper scope.

It should be something like

<type> DelayProjectAttempt3AudioProcessor::lin_interp(float <param1>, float <param2>, float <param3>)
{
...
}

and not

<type> lin_interp(float <param1>, float <param2>, float <param3>)
{
...
}
1 Like

That’s exactly it. Thanks for your help!