[PD-dev] flext and gnu/windows - 'undefined reference' with pd global vars?

dmotd inaudible at simplesuperlativ.es
Tue Apr 5 03:03:31 CEST 2011


On 04/05/2011 03:52 AM, martin.peach at sympatico.ca wrote:
>
>>> On 04/05/2011 01:14 AM, Hans-Christoph Steiner wrote:
>>>>
>>>> 'undefined reference' generally means that the linker has found
>>>> symbols
>>>> in the .o files that it can't find a reference to. I.e. take the
>>>> function 'foo', if myobject.o uses foo() from the bar lib, and the
>>>> bar
>>>> lib is not including the linking, because its not specified or not in
>>>> the lib path, the you'll get an 'undefined reference'. Basically it
>>>> means it can't find the code that matches a given symbol (i.e.
>>>> function,
>>>> variable, etc).
>>>>
>>>> .hc
>>>
>>> yes, i'm quite aware of what causes an 'undefined reference', but
>>> the flext lib should already be linking to pd.dll with -lpd and the
>>> locations -L check out..
>>>
>>> it only complains of a small handfull of the many symbols that flext
>>> uses from pd (it is afterall a programming interface which uses pds
>>> api extensively).
>>
>> the problem is caused only by the global data defined in the pd.dll
>> (garray_class, s_float, etc.) not by function protoypes
>>
>> gr~~~
>
> I keep running into that. I think you have to #define MSW so this bit of m_pd.h gets included:
>
> #ifdef MSW
> #ifdef PD_INTERNAL
> #define EXTERN __declspec(dllexport) extern
> #else
> #define EXTERN __declspec(dllimport) extern
> #endif /* PD_INTERNAL */
> #else
> #define EXTERN extern
> #endif /* MSW */
>
> Martin

i saw that too, and i can confirm MSW is definitely defined. afaik the 
'__imp_' prefix in the problem references is also a sign that that 
__declspec(dllimport) has been declared.



More information about the Pd-dev mailing list