0
0

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()'
../../api/lib/libfmodexp.so: undefined reference to
FMOD::ReverbI::init(FMOD::SystemI*, unsigned int)’
../../api/lib/libfmodexp.so: undefined reference to FMOD::ReverbI::getProperties(FMOD_REVERB_PROPERTIES*)'
../../api/lib/libfmodexp.so: undefined reference to
FMOD::ReverbI::getChanProperties(int, FMOD_REVERB_CHANNELPROPERTIES)’
../../api/lib/libfmodexp.so: undefined reference to FMOD::ReverbI::release()'
../../api/lib/libfmodexp.so: undefined reference to
FMOD::ReverbI::~ReverbI()’
../../api/lib/libfmodexp.so: undefined reference to FMOD::ReverbI::setProperties(FMOD_REVERB_PROPERTIES const*)'
../../api/lib/libfmodexp.so: undefined reference to
FMOD::ReverbI::createDSP()’
../../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

  • You must to post comments
0
0

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

  • You must to post comments
0
0

I think you may have an old version header for your win32 build The const for the extradriverdata shouldn’t be there anymore.

  • You must to post comments
0
0

Hi chenpo,

thank you, you are right. It was version 30 on windows.

regards
slajar

  • You must to post comments
Showing 3 results
Your Answer

Please first to submit.