[Solved] Undefined symbols IPlugView::iid and IPlugViewContentScaleSupport::iid

SDK for VST 3 audio plug-in and host development.
Post Reply
howardantares
Posts: 126
Joined: Tue Jun 21, 2016 1:46 pm

[Solved] Undefined symbols IPlugView::iid and IPlugViewContentScaleSupport::iid

Post by howardantares » Tue Jul 16, 2019 7:02 pm

I've *almost* got my VST3 plugin building after updating to 3.6.13, but I have two undefined symbols when linking I can't seem to figure out:
Undefined symbols for architecture x86_64:
"Steinberg::IPlugViewContentScaleSupport::iid", referenced from:
VSTGUI::VST3Editor::queryInterface(char const*, void**) in vst3editor.o
"Steinberg::IPlugView::iid", referenced from:
Steinberg::CPluginView::queryInterface(char const*, void**) in pluginview.o
Steinberg::CPluginView::queryInterface(char const*, void**) in vstguieditor.o
Steinberg::CPluginView::queryInterface(char const*, void**) in vst3editor.o
Steinberg::CPluginView::queryInterface(char const*, void**) in vstsinglecomponenteffect.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I am including the libpluginterfaces.a library, which is where IPlugView.h resides. I also include libbase.a. What else could I be missing?

I'm wondering if it relates to my class derived from SingleComponentEffect, which we created in order to sort out some issues with getState/setState that we found long ago (so that the Processor and Controller calls go to different functions), and it's possible I need to modify something related to queryInterface (etc.) now that SingleComponentEffect derives from EditControllerEx1 instead of EditController?

howardantares
Posts: 126
Joined: Tue Jun 21, 2016 1:46 pm

Re: Undefined symbols IPlugView::iid and IPlugViewContentScaleSupport::iid

Post by howardantares » Tue Jul 16, 2019 10:19 pm

Adding this code to vstinitiids.cpp fixes it, but is this the correct solution?

+
+ #include "pluginterfaces/gui/iplugview.h"
+ #include "pluginterfaces/gui/iplugviewcontentscalesupport.h"
+
//------------------------------------------------------------------------
namespace Steinberg {
+
+ DEF_CLASS_IID (IPlugView)
+ DEF_CLASS_IID (IPlugViewContentScaleSupport)
+

ygrabit
Posts: 137
Joined: Fri Jun 17, 2016 7:52 am
Location: Hamburg

Re: Undefined symbols IPlugView::iid and IPlugViewContentScaleSupport::iid

Post by ygrabit » Wed Jul 24, 2019 11:44 am

you have to add
public.sdk/source/common/commoniids.cpp
to your project. These iids are defined there...
YVan Grabit

howardantares
Posts: 126
Joined: Tue Jun 21, 2016 1:46 pm

Re: [Solved] Undefined symbols IPlugView::iid and IPlugViewContentScaleSupport::iid

Post by howardantares » Wed Jul 24, 2019 3:54 pm

Ah, that's better. Thanks!

Post Reply