JuceDemoPlugin not compiling on tip

I get the following errors:

1>plugineditor.cpp(20) : error C2664: ‘juce::Slider::addListener’ : cannot convert parameter 1 from 'JuceDemoPluginAudioProcessorEditor *const ’ to 'juce::Slider::Listener *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>plugineditor.cpp(28) : error C2664: ‘juce::Slider::addListener’ : cannot convert parameter 1 from 'JuceDemoPluginAudioProcessorEditor *const ’ to 'juce::Slider::Listener *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

and in pluginprocessor:

1>pluginprocessor.cpp(284) : error C2259: ‘JuceDemoPluginAudioProcessorEditor’ : cannot instantiate abstract class
1> due to following members:
1> ‘void juce::Value::Listener::valueChanged(juce::Value &)’ : is abstract
1> juce\juce_amalgamated.h(12349) : see declaration of ‘juce::Value::Listener::valueChanged’

Eh? None of those errors make any sense… Perhaps you’re using a clunky old MS compiler? If so, try changing “Slider::Listener” into “SliderListener” in PluginEditor.h, and see if that helps?

Does VS2005 count as “clunky”?

I’ll try VS2008.

Well, VS2005 isn’t as bad as VC6, but it’s still not quite standards-compliant!

It does indeed compile with VS2008. Unfortunately, we’re still using VS2005 for production.

On a related note, the provided VS2005/vc8 projects didn’t open smoothly for me on the tip, or the 1.51 release. The solution files don’t open at all, and when opening the .vcproj files, I get a “conversion wizard” even though I am using a matching version of MSVC. When opening the JUCE.vcproj file in 1.51, I get the following error:

The following error has occurred during XML parsing:

File: D:\juce_1_51\build\win32\vc8\JUCE.vcproj
Line: 9
Column: 2
Error Message:
‘9.00’ violates enumeration constraint of ‘7.00 7,00 7.10 7,10 8.00 8,00’.
The attribute ‘Version’ with value ‘9.00’ failed to parse.

Ok, I’ve changed that class name so it’ll be ok in vs2008.

I didn’t realise the internal version numbers were wrong - I guess I should change it to 8.0, then.

Unfortunately, the ProTools SDK does not compile with anything more recent than VC2005, due to the precompiled libraries used therein. I just tried compiling RTAS with Visual C++ Express 2008, and got a slew of SDK related errors.

I’m working on the VST/RTAS port of my latest work for windows, and got similar “cannot instantiate abstract class due to following members” errors as the above posts:

error C2259: 'ValhallaShimmer' : cannot instantiate abstract class due to following members: 'const juce::String juce::AudioProcessor::getInputChannelName(int) const' : is abstract c:\sdks\juce\juce_amalgamated.h(38859) : see declaration of 'juce::AudioProcessor::getInputChannelName' 'const juce::String juce::AudioProcessor::getOutputChannelName(int) const' : is abstract c:\sdks\juce\juce_amalgamated.h(38866) : see declaration of 'juce::AudioProcessor::getOutputChannelName'

These errors are from my own plugin, but the same errors are generated by the default Audio Processor files produced by the new Jucer. However, the JuceDemoPlugin doesn’t produce these errors, even though the code around getInputChannelName() and getOutputChannelName() is identical. I wonder if it is an issue with Juce interacting with the Pro Tools SDK.

Thanks for any help on this issue,

Sean Costello

I just created a clean VST-only project in the new Jucer, and it has the same "“cannot instantiate abstract class due to following members” errors in VisualStudio Express 2005. Building it in VC Express 2008 results in no errors.

Sean

You need to check that your class implements getInputChannelName (int) rather than getInputChannelName (const int). Proper compilers ignore the const modifier, but the older MS ones treated the types as being different.

Thanks for the tip!

I opened up my VC2005 project in VC2008, and everything compiled. Including (apparently) the RTAS. Which is strange, as the RTAS wasn’t compiling when I opened the “default” Jucer generated project in VC2008. I’ll have to try that again, and see if I get the same results. For now, my upcoming plugin (Introducing ValhallaShimmer – The Halls of Valhalla) is compiling in XP, so I’m happy.

Sean Costello

I have used 'MS Visual Studio Express 2012 for Windows Desktop' to try to compile JuceDemoPlugin. When I give the build command I am getting a message in the Error List window:

 

Error List:

Description > error D8003: missing source filename
File > cl
Project > JuceDemoPlugin

Output >

1>------ Build started: Project: JuceDemoPlugin, Configuration: Debug Win32 ------
1>cl : Command line error D8003: missing source filename
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

==========================================================================

 

Debug file data for JuceDemoPlugin :

Build started 22-09-2013 08:28:43 AM.
     1>Project "C:\Development\Projects\juce\extras\audio plugin demo\Builds\VisualStudio2012\JuceDemoPlugin.vcxproj" on node 2 (Build target(s)).
     1>ClCompile:
         C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /I..\..\JuceLibraryCode /IC:\Development\SDKs\VST\VST_SDK_2.4 /ZI /nologo /W4 /WX- /MP /Od /Oy- /D CODE_ANALYSIS /D WIN32 /D _WINDOWS /D DEBUG /D _DEBUG /D JUCER_VS2012_78A501F=1 /D _WINDLL /D _MBCS /Gm- /EHsc /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /GR /Fo".\Debug\\\" /Fd".\Debug\\\vc110.pdb" /Gd /TP /analyze /analyze:log ".\Debug\\juce_AAX_Wrapper.cpp.nativecodeanalysis.xml" /errorReport:prompt   /analyze:quiet ..\..\..\..\modules\juce_audio_plugin_client\AAX\juce_AAX_Wrapper.cpp
     1>cl : Command line error D8003: missing source filename
     1>Done Building Project "C:\Development\Projects\juce\extras\audio plugin demo\Builds\VisualStudio2012\JuceDemoPlugin.vcxproj" (Build target(s)) -- FAILED.

Build FAILED.

Time Elapsed 00:00:00.04

==========================================================================

Microsoft Visual Studio Express 2012 for Windows Desktop
Version 11.0.60610.01 Update 3
Microsoft .NET Framework
Version 4.5.50709

 

 

 

 

 

Please note I have not used VC++ for many years. Could you please help me through.


 

Check out the plugins forum...  I can compile RTAS and AAX64 using VC2012

 

Rail

Just a side note: goldenknight, please, don't post your system information... It doesn't help in fixing a VS project issue! Have a quick read of http://www.juce.com/forum/topic/reporting-bugs-please-read-doing-so .

"Command line error D8003: missing source filename" indicates missing CPP files -  I think the VS2012 project you have is broken... The best thing to try is deleting the exporters in the Introjucer, and recreating them.

Jrlanglois, thanks..... i have removed the system info and just put the VS 2012 version details. BTW the able to access the above link.

Yes, even microsoft site suggests the same http://msdn.microsoft.com/en-us/library/aa983368%28v=vs.80%29.aspx and when i look at the debug data there is no .cpp file mentioned after cl.exe /c

In this case i am not sure which .cpp file name should be inserted and how do i insert the same in VS2012 IDE.

I have tried various options to try to get the position where i can insert .cpp file using options under Project>>Properties>>Configuration Properties>>C/C++. This did not help me.

It has been long since i have used vc++ so i feel like a novice.

 

 

The error says "Missing Source Filename" and tells you the path of the file that's missing. Presumably that means you have a missing file, or the wrong path.

Hi Jules,

 

I was able to compile Introjucer, the jucer and JuceDemo projects directly using VS2012 though, the VS asked permission to update files in the VisualStudio2010 folder for these projects.

When permission was given the following was shown in the output window:
------ Update VC++ projects started -------
Updating project 'Jucer'...
    Configuration 'Debug|Win32': changing Platform Toolset to 'v110' (was 'v100').
    Configuration 'Release|Win32': changing Platform Toolset to 'v110' (was 'v100').

========== Update VC++ projects: 1 succeeded, 0 failed, 0 up-to-date ==========

After this i could succeeded in compiling the above three projects.

I am getting that 'error D8003' when i use Introjucer to open the files in VS and then compile it.