DaveH
December 14, 2018, 2:39pm
1
Hi. My Mac project is not allowing me to set 10.8 base SDK as my previous project did. I think everything is the same, apart from including juce_dsp module. In which I’m also getting errors complaining about
'redefinition of 'complex' as a different kind of symbol' vForce.h
Which might be a clue, has anyone seen this before?
And yes I’ve upgraded the C++ to 14 as it directed.
This is with 5.4.1 of projucer - freshly built from the github master.
ed95
December 14, 2018, 2:59pm
2
Are you not able to set the base SDK in the Projucer or is it not being set in Xcode correctly? You’ll need to have the SDK installed on your machine for Xcode to pick it up correctly.
As for the complex
symbol collision, you can see that we guard against it in the juce_dsp header here so I’m not sure why the compiler is complaining. Have you added any additional libraries to the project?
DaveH
December 14, 2018, 3:52pm
3
Thanks for replying. My previous project compiles and runs fine with 10.8 base and 10.7 target using the same Projucer, and yes it sets it OK but it doesn’t set it in Xcode 9.4.1, it’s completely bonkers.
If I add juce_dsp to my other project I get the same errors.
There are no other libraries or modules other than the standard ones and juce_dsp.
One later error is in ‘juce_SpecialFunctions.cpp’ - I’m getting a
'No template named 'complex'; did you mean Complex'?
The errors I’m getting at he top of vForce are
Explicit specialization of non template class 'complex'
&
Redefinition of 'complex' as different kind of symbol
ed95
December 14, 2018, 4:25pm
4
You’ll need to use a newer version of the OSX SDK to build the dsp module in order to use the C++14 features, I believe 10.11 is the furthest back you can go. You will still be able to set a deployment target down to 10.7 though.
1 Like
ed95
December 14, 2018, 4:27pm
5
You’ll need to edit the .plist file located in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist
and change the MinimumSDKVersion
if you want to use earlier SDKs. Otherwise Xcode will just say that it can’t find the SDK, even if you have it in the correct folder.
DaveH
December 14, 2018, 4:29pm
6
Thanks, yeah I’ve been using 10.7 target and 10.8 sdk in my last three products that are on sale right now. So 10.11 is the earliest? OK I’ll try that.
DaveH
December 14, 2018, 4:53pm
7
Very helpful, thanks. Any idea where I can get the 10.11 SDK from? I can’t see it on the ‘More downloads for Apple Developers’ list.
I’m just getting Xcode 7.3.1 - I presume it’s in there?
ed95
December 14, 2018, 4:57pm
8
Yeah Apple don’t make it particularly easy. You’ll need to download a version of XCode which comes with the 10.11 SDK (Xcode 7 I think?) from https://developer.apple.com/download/more/ and then copy it across from /Applications/Xcode_7.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
into your current Xcode’s contents.
DaveH
December 14, 2018, 4:59pm
9
Yep, I’m getting 7.3.1 all 5 gigs of it! LOL.
I’m still amazed I can use 10.11 for 10.7 though. Very good though.
ed95
December 14, 2018, 5:05pm
10
This is a really useful table for comparing Xcode and macOS SDK versions -
1 Like
DaveH
December 14, 2018, 5:44pm
11
It’s compiling BUT I have to set the SDK myself in XCode everytime I export the Jucer file. This is the said Jucer file… When it goes into XCode it’s set to ‘latest sdk’ and deployment 10.13
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="FbR61O" name="DiamondViper" projectType="audioplug" jucerVersion="5.4.1"
pluginCharacteristicsValue="pluginIsSynth,pluginWantsMidiIn"
pluginAUMainType="'aumu'" pluginVSTCategory="kPlugCategSynth"
pluginFormats="buildAAX,buildAU,buildVST,buildVST3" companyName="QuikQuak"
companyCopyright="(C)2018 David J. Hoskins" companyWebsite="www.quikquak.com"
companyEmail="[redacted]@quikquak.com" pluginVST3Category="Fx" reportAppUsage="0"
pluginManufacturerCode="QkQk" pluginCode="DiVp" aaxIdentifier="com.quikquak.diamondviper"
pluginAAXCategory="2048">
<MAINGROUP id="WhpwQV" name="DiamondViper">
<GROUP id="{8176543F-36D5-F196-0CBA-2E62CB26DF86}" name="Resources">
<FILE id="rPwNEi" name="Saw_Butt.png" compile="0" resource="1" file="Resources/Saw_Butt.png"/>
<FILE id="rTRpgd" name="Sine_Butt.png" compile="0" resource="1" file="Resources/Sine_Butt.png"/>
<FILE id="nKx8vj" name="Square_Butt.png" compile="0" resource="1" file="Resources/Square_Butt.png"/>
<FILE id="gBioXZ" name="Triangle_Butt.png" compile="0" resource="1"
file="Resources/Triangle_Butt.png"/>
<FILE id="xtPqNC" name="Futura Medium.ttf" compile="0" resource="1"
file="Resources/Futura Medium.ttf"/>
<FILE id="KowBD6" name="Button_Off.png" compile="0" resource="1" file="Resources/Button_Off.png"/>
<FILE id="MbSxxo" name="Button_On.png" compile="0" resource="1" file="Resources/Button_On.png"/>
<FILE id="PDEile" name="DisplayPanel.png" compile="0" resource="1"
file="Resources/DisplayPanel.png"/>
<FILE id="aT2ZFE" name="DV_background.png" compile="0" resource="1"
file="Resources/DV_background.png"/>
<FILE id="nAwdGn" name="Filter_group.png" compile="0" resource="1"
file="Resources/Filter_group.png"/>
<FILE id="FpC4Ch" name="Filter_Off.png" compile="0" resource="1" file="Resources/Filter_Off.png"/>
<FILE id="O84Q7s" name="Filter_On.png" compile="0" resource="1" file="Resources/Filter_On.png"/>
<FILE id="DreGyj" name="Horizontal_Puck.png" compile="0" resource="1"
file="Resources/Horizontal_Puck.png"/>
<FILE id="FwIptD" name="Keyboard.png" compile="0" resource="1" file="Resources/Keyboard.png"/>
<FILE id="iMeaS2" name="LFO_Off.png" compile="0" resource="1" file="Resources/LFO_Off.png"/>
<FILE id="lPEMJm" name="LFO_On.png" compile="0" resource="1" file="Resources/LFO_On.png"/>
<FILE id="Zl708i" name="OSC_Group.png" compile="0" resource="1" file="Resources/OSC_Group.png"/>
<FILE id="ww4Est" name="OSC_Off.png" compile="0" resource="1" file="Resources/OSC_Off.png"/>
<FILE id="e3NKH4" name="OSC_On.png" compile="0" resource="1" file="Resources/OSC_On.png"/>
<FILE id="u0fEwN" name="Vertical_Puck.png" compile="0" resource="1"
file="Resources/Vertical_Puck.png"/>
</GROUP>
<GROUP id="{2EFA0762-BA12-85FD-D477-9D21D822A9D3}" name="Source">
<FILE id="xjhB4R" name="ViperSynthesiser.h" compile="0" resource="0"
file="Source/ViperSynthesiser.h"/>
<FILE id="I2UvzP" name="ComboLookAndFeel.h" compile="0" resource="0"
file="Source/ComboLookAndFeel.h"/>
<FILE id="EtzMHh" name="ADgraphic.h" compile="0" resource="0" file="Source/ADgraphic.h"/>
<FILE id="JKZB2e" name="MainPanel.h" compile="0" resource="0" file="Source/MainPanel.h"/>
<FILE id="RwAByo" name="UI_OscGroup.h" compile="0" resource="0" file="Source/UI_OscGroup.h"/>
<FILE id="ewJ4BR" name="UI_GroupBase.h" compile="0" resource="0" file="Source/UI_GroupBase.h"/>
<FILE id="ofvor2" name="UI_FilterGroup.h" compile="0" resource="0"
file="Source/UI_FilterGroup.h"/>
<FILE id="uRaJe5" name="SnapSlider.h" compile="0" resource="0" file="Source/SnapSlider.h"/>
<FILE id="m09U5t" name="SimpleEQ.h" compile="0" resource="0" file="Source/SimpleEQ.h"/>
<FILE id="tyeRis" name="SliderLookAndFeel.h" compile="0" resource="0"
file="Source/SliderLookAndFeel.h"/>
<FILE id="QP0G01" name="DiamondLadder.h" compile="0" resource="0" file="Source/DiamondLadder.h"/>
<FILE id="XH7PFd" name="Dosc.h" compile="0" resource="0" file="Source/Dosc.h"/>
<FILE id="QSZ3TC" name="juceFHT.cpp" compile="1" resource="0" file="Source/juceFHT.cpp"/>
<FILE id="DcFxbv" name="juceFHT.h" compile="0" resource="0" file="Source/juceFHT.h"/>
<FILE id="y9zP1a" name="HalfBandFilter.cpp" compile="1" resource="0"
file="Source/HalfBandFilter.cpp"/>
<FILE id="dJB9Bv" name="HalfBandFilter.h" compile="0" resource="0"
file="Source/HalfBandFilter.h"/>
<FILE id="VUkpKa" name="ADSR.cpp" compile="1" resource="0" file="Source/ADSR.cpp"/>
<FILE id="ImwZTD" name="ADSR.h" compile="0" resource="0" file="Source/ADSR.h"/>
<FILE id="xDgUJ9" name="SynthVoice.h" compile="0" resource="0" file="Source/SynthVoice.h"/>
<FILE id="OUyubI" name="SynthSound.h" compile="0" resource="0" file="Source/SynthSound.h"/>
<FILE id="GODVqn" name="PluginProcessor.cpp" compile="1" resource="0"
file="Source/PluginProcessor.cpp"/>
<FILE id="F7kxN5" name="PluginProcessor.h" compile="0" resource="0"
file="Source/PluginProcessor.h"/>
<FILE id="q5Nqx4" name="PluginEditor.cpp" compile="1" resource="0"
file="Source/PluginEditor.cpp"/>
<FILE id="mhIUuK" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
<FILE id="sAUaZF" name="WaveTable.h" compile="0" resource="0" file="Source/WaveTable.h"/>
</GROUP>
</MAINGROUP>
<EXPORTFORMATS>
<VS2017 targetFolder="Builds/VisualStudio2017" vstLegacyFolder="E:\Plug-ins\SDKs\VST_SDK\VST2_SDK\"
IPPLibrary="Parallel_Static">
<CONFIGURATIONS>
<CONFIGURATION isDebug="1" name="Debug" enablePluginBinaryCopyStep="1" fastMath="1"
useRuntimeLibDLL="0" characterSet="MultiByte"/>
<CONFIGURATION isDebug="0" name="Release" enablePluginBinaryCopyStep="1" useRuntimeLibDLL="0"
characterSet="MultiByte" fastMath="1"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_core" path="../../JUCE/modules"/>
<MODULEPATH id="juce_events" path="../../JUCE/modules"/>
<MODULEPATH id="juce_graphics" path="../../JUCE/modules"/>
<MODULEPATH id="juce_data_structures" path="../../JUCE/modules"/>
<MODULEPATH id="juce_gui_basics" path="../../JUCE/modules"/>
<MODULEPATH id="juce_gui_extra" path="../../JUCE/modules"/>
<MODULEPATH id="juce_cryptography" path="../../JUCE/modules"/>
<MODULEPATH id="juce_opengl" path="../../JUCE/modules"/>
<MODULEPATH id="juce_audio_basics" path="../../JUCE/modules"/>
<MODULEPATH id="juce_audio_devices" path="../../JUCE/modules"/>
<MODULEPATH id="juce_audio_formats" path="../../JUCE/modules"/>
<MODULEPATH id="juce_audio_processors" path="../../JUCE/modules"/>
<MODULEPATH id="juce_audio_plugin_client" path="../../JUCE/modules"/>
<MODULEPATH id="juce_audio_utils" path="../../JUCE/modules"/>
<MODULEPATH id="juce_dsp" path="../../Users/davidhoskins/JUCE/modules"/>
</MODULEPATHS>
</VS2017>
<XCODE_MAC targetFolder="Builds/MacOSX" vst3Folder="/SDKs/VST_SDK/VST3_SDK">
<CONFIGURATIONS>
<CONFIGURATION isDebug="1" name="Debug" vst3BinaryLocation="/Library/Audio/Plug-Ins/VST3"
auBinaryLocation="/Library/Audio/Plug-Ins/Components" osxSDK="10.11 SDK"
osxCompatibility="10.7 SDK" fastMath="1" osxArchitecture="Native"
vstBinaryLocation="/Library/Audio/Plug-Ins/VST"/>
<CONFIGURATION isDebug="0" name="Release" vst3BinaryLocation="/Library/Audio/Plug-Ins/VST3"
auBinaryLocation="/Library/Audio/Plug-Ins/Components" osxSDK="10.11 SDK"
osxCompatibility="10.7 SDK" osxArchitecture="64BitUniversal"
fastMath="1" stripLocalSymbols="1" vstBinaryLocation="/Library/Audio/Plug-Ins/VST"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_opengl"/>
<MODULEPATH id="juce_gui_extra"/>
<MODULEPATH id="juce_gui_basics"/>
<MODULEPATH id="juce_graphics"/>
<MODULEPATH id="juce_events"/>
<MODULEPATH id="juce_data_structures"/>
<MODULEPATH id="juce_cryptography"/>
<MODULEPATH id="juce_core"/>
<MODULEPATH id="juce_audio_utils"/>
<MODULEPATH id="juce_audio_processors"/>
<MODULEPATH id="juce_audio_plugin_client"/>
<MODULEPATH id="juce_audio_formats"/>
<MODULEPATH id="juce_audio_devices"/>
<MODULEPATH id="juce_audio_basics"/>
<MODULEPATH id="juce_dsp" path="../../Users/davidhoskins/JUCE/modules"/>
</MODULEPATHS>
</XCODE_MAC>
</EXPORTFORMATS>
<MODULES>
<MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"
useGlobalPath="1"/>
<MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_core" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_cryptography" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_dsp" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_events" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
<MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
</MODULES>
<LIVE_SETTINGS>
<WINDOWS/>
<OSX/>
</LIVE_SETTINGS>
<JUCEOPTIONS/>
</JUCERPROJECT>
DaveH
December 15, 2018, 2:26pm
12
It doesn’t matter what I set MinimumSDKVersion
to, it still wants to use the latest.
ed95
December 17, 2018, 8:39am
13
The project base SDK won’t be set, but each of the targets will:
1 Like
DaveH
December 17, 2018, 10:03am
14
Oh OK, thanks for spending time looking at that. I find XCode quite baffling at times. So doesn’t matter what the project settings are, they don’t override the targets? Got it.
Thank-you Ed.