On Aug 1, 2006, at 12:17 PM, Martin Peach wrote:
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
I've gotten down installed MinGW to a practiced art with the HOWTO I
wrote. I can get it working quite quickly these days. Have you
tried the HOWTO? There are a couple key details which make life much
easier, like the /usr/local mount.
Using MinGW on Windows has made life so much easier since it uses
gcc. It makes porting Linux or Mac OS X externals soooo much easier
than when using the Microsoft tools.
.hc