[PD] MinGW + Eclipse + MSWIN helloworld

luca paganotti luca.paganotti at gmail.com
Thu Jul 14 20:15:19 CEST 2011


On Thu, Jul 14, 2011 at 7:02 PM, Hans-Christoph Steiner <hans at at.or.at>wrote:

>
> On Thu, 14 Jul 2011 12:44 -0400, "Mathieu Bouchard" <matju at artengine.ca>
> wrote:
> > On Thu, 14 Jul 2011, luca paganotti wrote:
> >
> > > but ... I get 'undefined reference' (s) for all the pd symbols that are
> > > used by helloworld.c i.e. pd_new, gensym, class_new, class_addbang,
> post
> >
> > You need to use the -shared option to produce a .so or .DLL file.
> >
> > In addition, you need to link with PD.DLL (a Windows-only requirement...
> > no such equivalent on other platforms).
>
> Hey Luca,
>
> This is great, that you got this far!  Can you write up a wiki page in
> the dev section. Don't worry too much about formatting, mostly just get
> the info in there.
> http://puredata.info/docs/developer
>

I think it's a very trivial thing for a wiki page, I mean is not such a
great thing ....


>
> As for Makefiles, if you use the the Library Template, then the Makefile
> will work on MinGW, Cygwin, Mac OS X, GNU/Linux, Android, iOS, etc.
> http://puredata.info/docs/developer/LibraryTemplate
>
> .hc
>

ok, got the template from svn,

use it as it is trying to build a 'mycobject' as defined by the code ...

getting these results in eclipse console:

**** Build of configuration Default for project mycobject ****

make all
Building target: mycobject
Invoking: MinGW C++ Linker
g++ -L"C:\Programmi\pd\bin" -o"mycobject"  ./mycobject.o
-l"C:/Programmi/pd/bin/pd.lib"
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot
find -lC:/Programmi/pd/bin/pd.lib
collect2: ld returned 1 exit status
make: *** [mycobject] Error 1

what I really do not understand is that I have my pd.lib file exactly in the
folder were ld on bhalf eclipse searches for it, i.e.
C:\Programmi\pd\bin\pd.lib

Anyway I then tryed the hard way from the mingw console issueing a 'make
all' getting finally a usefull error message:

Pag at XP-PAG /c/dev/c++/pd-externals/mycobject
$ make clean
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
rm -f -- mycobject.o
rm -f -- mycobject.dll
rm -f -- mycobject.o
rm -f -- mycobject.dll

Pag at XP-PAG /c/dev/c++/pd-externals/mycobject
$ make all
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
cc -I"/c/Programmi/pd/include/pd" -Wall -W -g -DPD -DVERSION='""'
-mms-bitfields
 -O3 -funroll-loops -fomit-frame-pointer -o "mycobject.o" -c "mycobject.c"
/bin/sh: cc: command not found
make: *** [mycobject.o] Error 127

perhaps does it means that the compiler command is not defined in the
makefile?

I added this line

CC = gcc

between the OS = windows and PD_PATH = $(shell cd "$(PROGRAMFILES)"/pd &&
pwd) lines

inside the ifeq (MINGW,$(findstring MINGW,$(UNAME))) ... endif  block

and then got:

Pag at XP-PAG /c/dev/c++/pd-externals/mycobject
$ make all
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
sed: can't read mycobject-meta.pd: No such file or directory
gcc -I"/c/Programmi/pd/include/pd" -Wall -W -g -DPD -DVERSION='""'
-mms-bitfield
s -O3 -funroll-loops -fomit-frame-pointer -o "mycobject.o" -c "mycobject.c"
gcc  -s -shared -Wl,--enable-auto-import -o "mycobject.dll" "mycobject.o"
-L"/
c/Programmi/pd/src/" -L"/c/Programmi/pd/bin/" -lpd -lwsock32 -lkernel32
-luser32
 -lgdi32
chmod a-x "mycobject.dll"

Pag at XP-PAG /c/dev/c++/pd-externals/mycobject
$

I got the mycobject dll that runs fine under pd-extended on a windows box.

Still wondering why eclise doen't find my pd.lib

At least this is working now from the command line.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20110714/7cc2c6d0/attachment-0001.htm>


More information about the Pd-list mailing list