I'm trying to compile
VoiceHook2 for TF2.
It compiled with hl2sdk-tf2 successfully. But when I loaded it, it gave me "undefined symbol OnDependenciesDroppedEv".
I see that
TF2Items used to use orangeboxvalve before switching to AMBuild. However, there isn't an ob-valve or ep2v in the HL2 SDK mirror branches. I've found hl2sdk-ob-valve
here, but the last commit was in 2013 and the GitHub link 404's. The compilation with that hl2sdk-ob-valve fails with this error:
PHP Code:
In file included from ../../../hl2sdk-ob-valve/public/tier1/utlvector.h:23,
from ../../../hl2sdk-ob-valve/public/tier1/convar.h:21,
from ../../../hl2sdk-ob-valve/public/eiface.h:16,
from ../../../mmsource-1.10.6/core/ISmmAPI.h:46,
from ../../../mmsource-1.10.6/core/ISmmPlugin.h:39,
from sdk/smsdk_ext.h:102,
from sdk/smsdk_ext.cpp:34:
../../../hl2sdk-ob-valve/public/tier1/utlmemory.h: In member function ‘void CUtlMemory<T, I>::Swap(CUtlMemory<T, I>&)’:
../../../hl2sdk-ob-valve/public/tier1/utlmemory.h:350:2: error: there are no arguments to ‘swap’ that depend on a template parameter, so a declaration of ‘swap’ must be available [-fpermissive]
swap( m_nGrowSize, mem.m_nGrowSize );
^~~~
../../../hl2sdk-ob-valve/public/tier1/utlmemory.h:350:2: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
../../../hl2sdk-ob-valve/public/tier1/utlmemory.h:352:2: error: there are no arguments to ‘swap’ that depend on a template parameter, so a declaration of ‘swap’ must be available [-fpermissive]
swap( m_nAllocationCount, mem.m_nAllocationCount );
^~~~
make[1]: *** [Makefile:161: Release.orangeboxvalve/sdk/smsdk_ext.o] Error 1
make: *** [Makefile:169: all] Error 2
I'm quite new to extensions and barely know anything about AMBuild, so I can't assess the situation well.
Is it the extension's fault for not working with hl2sdk-tf2 and is using orangeboxvalve outdated? Would building it with AMBuild fix anything?