yes, this is a limitation on windows where a DLL can't automatically import 
symbols from the executable where it was loaded (what you get on Linux with 
--export-dynamic). for Pd the solution is to make the app itself a thin wrapper 
around a DLL (pd.dll) which plugins can link to. 

I found this link which might be helpful:

http://forums.codeguru.com/showthread.php?536343-RESOLVED-accessing-symbols-in-appllication-from-within-dynamic-library-MinGW

I guess if you compile libpd as a DLL (with "--export-all-symbols") existing 
externals should load.
 


Gesendet: Freitag, 11. Mai 2018 um 19:21 Uhr
Von: "Joe White" <[email protected]>
An: Pd-list <[email protected]>
Betreff: [PD] Using externals with libpd on Windows

Hi all, 
 
I recently spent a bit of time tracking down why a patch wasn't loading a 
couple of externals in a windows application that embeds libpd.
 
The patch was using vbap [0] and soundfile_info from iemlib [1].
 
The issue I found was that the pre-built binaries that work in the window 
version of the Pd authoring environment were linking against pd.dll (I'm 
assuming from Pd/bin/) in order to correctly link against the plugin API 
methods exposed in m_pd.h.
 
The solution I recently came to, though admittedly a bit of a hack, was to 
generate a custom VS2017 dll project for both vbap, and soundfile_info, include 
the relevant source files, and link against the compiled version of libpd to 
resolve the missing symbols instead of the authoring libraries.
 
The downside of this approach is that the manually compiled externals will no 
longer run in the Pd authoring environment, and it's not really maintainable 
from a development perspective. 
 
From my days of making externals for macos, I don't think I ever had to link 
against Pd, but just include m_pd.h and be done.
 
My question is whether this is usual behaviour when working with 
externals/libpd on Windows or if I'm missing something somewhere?
 
Any perspective would be much appreciated!
 
Thanks,
Joe
 
[0] https://puredata.info/downloads/vbap
[1] 
https://git.iem.at/pd/iemlib[https://git.iem.at/pd/iemlib]_______________________________________________
 [email protected] mailing list UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list]

_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list

Reply via email to