Bug Reports For Latest Non-Polymorphic Visual Studio Solution

Latest develop branch gets Windows on par with the macOS side for separate build targets.

So far I’ve noticed the following issues:

  • External libraries WILL fail to link.
    (create a plug-in jucer project. add a lib to be linked against somewhere not in folder, then add the path to Extra Library Search Path).
    Linking will fail and it won’t find any symbol needing the library.
    For example we have this in one of our files: #pragma comment(lib, "ourLibrary.lib")
  • RTAS broken,
    We’ve reported the Mac side with latest updates and already have a fix.
    But also the Windows side got it broken and has some messy code left-overs.
    This will cause ANY plug-in target to fail building even if you’ll try building it explicitly. (when RTAS is checked/included as Target).

a. you’ll step over this error (which isn’t relevant for VST for example):

You need to define the JucePlugin_WinBag_path value!

b. afterward it’ll fail with:

Error	LNK2019	unresolved external symbol _DllMainRTAS@12 referenced in function _DllMain@12	GainPlugIn (VST3)	E:\Developer\JUCE\examples\PlugInSamples\GainPlugIn\Builds\VisualStudio2015\GainPlugIn.lib(juce_audio_plugin_client_utils.obj)	1

Could you please be more specific with the linking error you are seeing with an external library? I’ve just created a new plug-in and successfully linked against an external, static library by specifying “Extra library search paths”, both using #pragma comment(lib, "libname.lib") and setting “External libraries to link” to “libname.lib”.

@t0m sorry.
Please ignore this, I’ve tested it with all sort of linking (/MTD /MT) and x64/x32 Release/Debug.

On our case the latest changes to projucer required adding the lib explicitly to the External libraries to link.
As it was missing in the targets code (#pragma was on what is now shared-code…)

The main difference I’ve noticed was that we had it in our projects in the .cpp which didn’t work. on my test project when added to header it worked as expected.

Another thing I’ve noticed,
Changes with latest projucer exporter set default behavior to:
PDBs being overwritten for 64bit/32bit.
Due to intermediate paths become the same for both

set in projucer “Intermediates path”…
BTW, the comment/tooltip is wrong suggesting adding quotes which will fail with current tip / exporter.

Would be wiser to set $Platform$Configuration as default intermediates (which wasn’t defined but was applied by VS) especially for anyone who wants to keep his symbols…

I agree - I’ve just changed the default behaviour.