[FriBidi] exports dll symbol methods even if compiled static

Roger Pack rogerdpack2 at gmail.com
Wed Sep 5 11:35:28 PDT 2012


Hello all.
I noticed that if I cross compile fribdi (for windows) with
--enable-static --disable-shared, then I cross compile libass the same
way, then attempt to use it, I get this:


mingw-w64-i686/i686-w64-mingw32/lib/libass.a(ass_shaper.o): In
function `ass_shaper_shape’:
win32/libass-0.10.0/libass/ass_shaper.c:611: undefined reference to
`_imp__fribidi_get_bidi_types’

even though it's linking against -lfribdi in the proper order.

Applying this patch (from the VLC people):

+++ fribidi/lib/fribidi-common.h 2008-02-04 21:32:25.000000000 +0000
 @@ -53,11 +53,7 @@

 /* FRIBIDI_ENTRY is a macro used to declare library entry points. */
 #ifndef FRIBIDI_ENTRY
 -# if (defined(WIN32)) || (defined(_WIN32_WCE))
 -# define FRIBIDI_ENTRY __declspec(dllimport)
 -# else /* !WIN32 */
 # define FRIBIDI_ENTRY /* empty */
 -# endif /* !WIN32 */
 #endif /* !FRIBIDI_ENTRY */

seems to make it "now work"

I suppose...maybe...with static libraries it shouldn't be exported
this way for windows?
Thanks!
-roger-


More information about the fribidi mailing list