[speex-dev] status report on the Windows CE (PocketPC) ACM codec

Christian Buchner Christian.Buchner1 at epost.de
Wed Jan 7 18:24:57 PST 2004



> Which version of gcc are you using? I know that only recently has gcc 
> made itself compatible with the C++ name mangling standard, whatever 
> that is. I have no idea if MSVC++ is compatible with it.

It was essentially my own mistake. After the Embedded C++ IDE crashed unexpectedly,
the .lib file was no longer present in the project settings (the project had not been saved)
so all the errors I got were caused by a missing .lib reference in the link stage!
I had to change my cross compiler target to "arm-wince-pe" because otherwise the
object/.lib files generated by gcc would not be accepted by Microsoft's LINK.EXE.
And I got around the leading underscore issue by re-defining all the speex API functions
Ugly, but works.

#define speex_encode _speex_encode

> > *Future conflicts might arise from the 2 different stdlib implementation.
> >   The gcc code will use the open-source "newlib" while the Visual C++ compiled
> >   code will rely on Microsoft's libc.
> 
> In general, you have to compile everything with the same compiler to get 
> it to link correctly.

I am bound to disprove that ;)  The calling conventions are only an issue if there
is a mismatch. I believe both sides are currently using __cdecl calling conventions.

The only link errors that are left are related to GCC's software FPU emulation. GCC
references emulation functions that are part of glibc only (I used the much more compact
newlib instead, which does not provide these). So I have to rip some parts out of glibc
and compile these separately.That may cause some ugly GPL vs. BSD-style license issues.
I will have to look into that issue later.

Christian

<p>--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'speex-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Speex-dev mailing list