Error Message: Undefined symbols for architecture x86_64


#1

Hi, I have the following error when i try to use fftw3 library: Undefined symbols for architecture x86_64:
“createPluginFilterOfType(juce::AudioProcessor::WrapperType)”, referenced from:
(anonymous namespace)::pluginEntryPoint(long long ()(VstEffectInterface, int, int, long long, void*, float)) in juce_audio_plugin_client_VST2.o
"PitchEstimatorAudioProcessorEditor::PitchEstimatorAudioProcessorEditor(PitchEstimatorAudioProcessor&)", referenced from:
PitchEstimatorAudioProcessor::createEditor() in PluginProcessor.o
"juce::BigInteger::BigInteger(juce::BigInteger&&)", referenced from:
juce::AudioChannelSet::AudioChannelSet(juce::AudioChannelSet&&) in juce_audio_plugin_client_VST2.o
"juce::BigInteger::BigInteger(juce::BigInteger const&)", referenced from:
juce::AudioChannelSet::AudioChannelSet(juce::AudioChannelSet const&) in juce_audio_plugin_client_VST2.o
"juce::BigInteger::BigInteger()", referenced from:
juce::AudioChannelSet::AudioChannelSet() in juce_audio_plugin_client_VST2.o
"juce::BigInteger::~BigInteger()", referenced from:
juce::AudioChannelSet::~AudioChannelSet() in juce_audio_plugin_client_VST2.o
"juce::BigInteger::operator=(juce::BigInteger&&)", referenced from:
juce::AudioChannelSet::operator=(juce::AudioChannelSet&&) in juce_audio_plugin_client_VST2.o
"juce::BigInteger::operator=(juce::BigInteger const&)", referenced from:
juce::AudioChannelSet::operator=(juce::AudioChannelSet const&) in juce_audio_plugin_client_VST2.o
"juce::MidiBuffer::ensureSize(unsigned long)", referenced from:
JuceVSTWrapper::resume() in juce_audio_plugin_client_VST2.o

The number of errors that the console show me is more and more but of the same type. I’m working on a pitch estimator trying to use the fftw3 library for fft operations, so i putted in Other Linker Flags the path where is located -lfftw3 because it gave me errors about fft (it didn’t find the functions of the library fftw3). Now it find them but it looks like it doesn’t find the Juce library. I already tried to add the Juce Library functions (the ones located in ‘modules’) in the same folder of the project but it gives me the same errors.
How can i solve the problem? Thanks


#2

Not really sure why linking in fftw3 should affect the linker not finding JUCE symbols… sorry.


#3

I’m not sure, but the linker specifically complains about symbols for 64 bit. And the symbols it is missing is VST2 related…
Can you create VST2 for 64 bit?


#4

I’m not at all involved in the OP question but I think it is worth to clarify this question in case someone else sees this post with the same doubt: yes, it is totally possible to create 64-bit VST2 plug-ins (and they can also be combined in universal binaries with their 32-bit counterparts, too).

So I don’t think that could be the reason of the original problem reported


#5

Thanks for clarifying, the vst2 ang 32/64 bit get’s me confused, will read it up one day…


#6

Oh yes, of course they are not related even though when i had fft errors i hadn’t JUCE symbols problems. Maybe it’s because the compiler didn’t try to find JUCE symbols because it stopped after finding FFT errors. However, i just written the steps that i did in order to help you to find the solution.


#7

Thanks. All the errors are related to VST2.o (the object file). It’s my first time i use JUCE, maybe i made a mistake to build all the things. Now i’ll try to restart from the beginning. :grin: