Hi,
I get following linker errors when compiling the useplugins example with:
[code:1anxuybg]
g++ -O3 -o useplugins main.cpp ../../api/lib/libfmodexp.so -pthread
../../api/lib/libfmodexp.so: undefined reference to FMOD::ReverbI::ReverbI()'
FMOD::ReverbI::init(FMOD::SystemI*, unsigned int)’
../../api/lib/libfmodexp.so: undefined reference to
../../api/lib/libfmodexp.so: undefined reference to FMOD::ReverbI::getProperties(FMOD_REVERB_PROPERTIES*)'
FMOD::ReverbI::getChanProperties(int, FMOD_REVERB_CHANNELPROPERTIES)’
../../api/lib/libfmodexp.so: undefined reference to
../../api/lib/libfmodexp.so: undefined reference to FMOD::ReverbI::release()'
FMOD::ReverbI::~ReverbI()’
../../api/lib/libfmodexp.so: undefined reference to
../../api/lib/libfmodexp.so: undefined reference to FMOD::ReverbI::setProperties(FMOD_REVERB_PROPERTIES const*)'
FMOD::ReverbI::createDSP()’
../../api/lib/libfmodexp.so: undefined reference to
../../api/lib/libfmodexp.so: undefined reference to `FMOD::ReverbI::setChanProperties(int, FMOD_REVERB_CHANNELPROPERTIES const)’
collect2: ld returned 1 exit status[/code:1anxuybg]
I just wrote an output-plugin for windows and it works properly. I wanted to port it to Linux as well. Unfortunately, it’s not loaded. I assume I can just load output-plugins with the "p"-version of the fmodex. On windows it works in both versions.
I link the output plugin like this:
[code:1anxuybg]
g++ -shared -fPIC -o output_plugin.so -I"../../../fmodapi400linux/api/inc" ../../src/output_plugin/main.c
[/code:1anxuybg]
regards
slajar
- slajar asked 11 years ago
- You must login to post comments
Hi,
my output plugin is now working fine I found a minor bug in the fmod_output header file:
the function FMOD_OUTPUT_INITCALLBACK is defined under windows as follows:
[code:rzy01j6s]
typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_INITCALLBACK) (FMOD_OUTPUT_STATE *output_state, int selecteddriver, FMOD_INITFLAGS flags, int *outputrate, int outputchannels, FMOD_SOUND_FORMAT *outputformat, int dspbufferlength, int dspnumbuffers, const void *extradriverdata);
[/code:rzy01j6s]
and on linux and macosx:
[code:rzy01j6s]
typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_INITCALLBACK) (FMOD_OUTPUT_STATE *output_state, int selecteddriver, FMOD_INITFLAGS flags, int *outputrate, int outputchannels, FMOD_SOUND_FORMAT *outputformat, int dspbufferlength, int dspnumbuffers, void *extradriverdata);
[/code:rzy01j6s]
The "const" for extradriverdata is missing, therefor my code might not be entirely compatible and only gcc4 on MacOSX was complaining about this.
regards
slajar
- slajar answered 11 years ago
- You must login to post comments
I think you may have an old version header for your win32 build The const for the extradriverdata shouldn’t be there anymore.
- chenpo answered 11 years ago
- You must login to post comments
Hi chenpo,
thank you, you are right. It was version 30 on windows.
regards
slajar
- slajar answered 11 years ago
- You must login to post comments
Please login first to submit.