c.m.bryan wrote:
Alright, I installed mingw on my linux box and test-compiled an exe which ran ok. I took the original markov makefile and simply changed all the ".pd_linux" to ".dll", and changed the gcc call to i386-mingw32-gcc. This gave me a dll without errors: however, trying to load it in pd gives:
C:\WINDOWS\DESKTOP\PD-0.38-4\PD-0.38-4-DEVEL-2\extra\markov.dll: couldn't load markov ... couldn't create
The "couldn't load" error tells me that it's seeing the file correctly, it just can't handle it.
Looking at other pd makefiles, they're calling "cl" and "link" to generate the .dll, but they're not part of mingw.
I guess those are the Microsoft tools, not the gnu ones. The makefiles are set up for some version of MSVC. I find it easier to use VisualC++ Express (which you can get for free) to build pd stuff for Windows, MINGW being such a pain to set up. Setting up a project in VC is only about 90% the hassle of redoing the makefile...;( I'm not sure (!), but I don't think MINGW dlls will work with binaries built with Microsoft tools. The 'couldn't load' message may relate to that. One way to find out would be to build pd first and try linking to the pd.lib you get from that. The other cause of externs not loading is that the setup routine is not exported, something which is done differently in MINGW vs MSVC. Martin
Am I missing something?
-Chris