bogaudio / BogaudioModules

Modules for VCV Rack.
Other
266 stars 33 forks source link

undefined references building plugin (fresh clone, Windows, updated MINGW64) #226

Open Paul-Dempsey opened 1 year ago

Paul-Dempsey commented 1 year ago

Just cloned this repo, building in full Rack environment (not SDK) on Windows with a freshly updated MINGW64, and I'm getting these two unresolved externals when building this plugin for bogaudio::VCF::minFrequency and bogaudio::FollowerBase::efGainMaxDecibels.

make[1]: Entering directory '/g/repos/rack/plugins/BogaudioModules'
g++ -o plugin.dll build/src/AD.cpp.o build/src/ADSR.cpp.o build/src/AMRM.cpp.o build/src/ASR.cpp.o build/src/Additator.cpp.o build/src/AddrSeq.cpp.o build/src/AddrSeqX.cpp.o build/src/Analyzer.cpp.o build/src/AnalyzerXL.cpp.o build/src/Arp.cpp.o build/src/Assign.cpp.o build/src/Blank3.cpp.o build/src/Blank6.cpp.o build/src/Bool.cpp.o build/src/CVD.cpp.o build/src/Chirp.cpp.o build/src/Clpr.cpp.o build/src/Cmp.cpp.o build/src/CmpDist.cpp.o build/src/DADSRH.cpp.o build/src/DADSRHPlus.cpp.o build/src/DGate.cpp.o build/src/Detune.cpp.o build/src/EQ.cpp.o build/src/EQS.cpp.o build/src/Edge.cpp.o build/src/EightFO.cpp.o build/src/EightOne.cpp.o build/src/FFB.cpp.o build/src/FMOp.cpp.o build/src/FlipFlop.cpp.o build/src/Follow.cpp.o build/src/FourFO.cpp.o build/src/FourMan.cpp.o build/src/Inv.cpp.o build/src/LFO.cpp.o build/src/LLFO.cpp.o build/src/LLPG.cpp.o build/src/LPG.cpp.o build/src/LVCF.cpp.o build/src/LVCO.cpp.o build/src/Lag.cpp.o build/src/Lgsw.cpp.o build/src/Lmtr.cpp.o build/src/Manual.cpp.o build/src/Matrix18.cpp.o build/src/Matrix44.cpp.o build/src/Matrix44Cvm.cpp.o build/src/Matrix81.cpp.o build/src/Matrix88.cpp.o build/src/Matrix88Cv.cpp.o build/src/Matrix88M.cpp.o build/src/MegaGate.cpp.o build/src/Mix1.cpp.o build/src/Mix2.cpp.o build/src/Mix4.cpp.o build/src/Mix4x.cpp.o build/src/Mix8.cpp.o build/src/Mix8x.cpp.o build/src/Mono.cpp.o build/src/Mult.cpp.o build/src/Mumix.cpp.o build/src/Mute8.cpp.o build/src/Noise.cpp.o build/src/Nsgt.cpp.o build/src/Offset.cpp.o build/src/OneEight.cpp.o build/src/PEQ.cpp.o build/src/PEQ14.cpp.o build/src/PEQ14XF.cpp.o build/src/PEQ14XR.cpp.o build/src/PEQ14XV.cpp.o build/src/PEQ6.cpp.o build/src/PEQ6XF.cpp.o build/src/Pan.cpp.o build/src/Pgmr.cpp.o build/src/PgmrX.cpp.o build/src/Pgmr_shared.cpp.o build/src/PolyCon16.cpp.o build/src/PolyCon8.cpp.o build/src/PolyMult.cpp.o build/src/PolyOff16.cpp.o build/src/PolyOff8.cpp.o build/src/Pressor.cpp.o build/src/Pulse.cpp.o build/src/RGate.cpp.o build/src/Ranalyzer.cpp.o build/src/Reftone.cpp.o build/src/SampleHold.cpp.o build/src/Shaper.cpp.o build/src/ShaperPlus.cpp.o build/src/Sine.cpp.o build/src/Slew.cpp.o build/src/Stack.cpp.o build/src/Sums.cpp.o build/src/Switch.cpp.o build/src/Switch1616.cpp.o build/src/Switch18.cpp.o build/src/Switch44.cpp.o build/src/Switch81.cpp.o build/src/Switch88.cpp.o build/src/Test.cpp.o build/src/Test2.cpp.o build/src/TestExpander.cpp.o build/src/TestGl.cpp.o build/src/TestVCF.cpp.o build/src/UMix.cpp.o build/src/Unison.cpp.o build/src/VCA.cpp.o build/src/VCAmp.cpp.o build/src/VCF.cpp.o build/src/VCM.cpp.o build/src/VCO.cpp.o build/src/VU.cpp.o build/src/Velo.cpp.o build/src/Vish.cpp.o build/src/Walk.cpp.o build/src/Walk2.cpp.o build/src/XCO.cpp.o build/src/XFade.cpp.o build/src/addressable_sequence.cpp.o build/src/analyzer_base.cpp.o build/src/bogaudio.cpp.o build/src/dadsrh_core.cpp.o build/src/disable_output_limit.cpp.o build/src/follower_base.cpp.o build/src/lfo_base.cpp.o build/src/lpg_common.cpp.o build/src/matrix_base.cpp.o build/src/menu.cpp.o build/src/mixer.cpp.o build/src/mixer_expander.cpp.o build/src/module.cpp.o build/src/output_range.cpp.o build/src/param_quantities.cpp.o build/src/parametric_eq.cpp.o build/src/poly_channels.cpp.o build/src/rack_overrides.cpp.o build/src/save_latch_to_patch.cpp.o build/src/shaper_core.cpp.o build/src/skins.cpp.o build/src/slew_common.cpp.o build/src/trigger_on_load.cpp.o build/src/utils.cpp.o build/src/vco_base.cpp.o build/src/widgets.cpp.o build/src/dsp/analyzer.cpp.o build/src/dsp/envelope.cpp.o build/src/dsp/math.cpp.o build/src/dsp/noise.cpp.o build/src/dsp/oscillator.cpp.o build/src/dsp/signal.cpp.o build/src/dsp/table.cpp.o build/src/dsp/filters/equalizer.cpp.o build/src/dsp/filters/experiments.cpp.o build/src/dsp/filters/filter.cpp.o build/src/dsp/filters/multimode.cpp.o build/src/dsp/filters/resample.cpp.o build/src/dsp/filters/utility.cpp.o -shared -L../.. -lRack -static-libstdc++
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: build/src/VCF.cpp.o:VCF.cpp:(.rdata$.refptr._ZN8bogaudio3VCF12minFrequencyE[.refptr._ZN8bogaudio3VCF12minFrequencyE]+0x0): undefined reference to `bogaudio::VCF::minFrequency'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: build/src/follower_base.cpp.o:follower_base.:(.rdata$.refptr._ZN8bogaudio12FollowerBase17efGainMaxDecibelsE[.refptr._ZN8bogaudio12FollowerBase17efGainMaxDecibelsE]+0x0): undefined reference to `bogaudio::FollowerBase::efGainMaxDecibels'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [../../compile.mk:78: plugin.dll] Error 1
make[1]: Leaving directory '/g/repos/rack/plugins/BogaudioModules'

I do see both definitions of them. Is this related to them being static constexpr? This is new to me, since I'm just getting back to C++ for the first time since ~2006, and not used gcc before. I didn't see any special instructions in the README for building.

Any idea what's wrong, or clues to where to look?

mdemanett commented 1 year ago

What's the compiler version? 'gcc --version'?

Paul-Dempsey commented 1 year ago

MINGW64 /g/repos/rack/plugins/pachde1 $ gcc --version gcc.exe (Rev6, Built by MSYS2 project) 13.1.0