Dear list,
I tried to compile the test externals in doc/6.externs on Windows 7 from the command line using MSYS2/MinGW. I put everything (source files, m_pd.h and pd.dll) in one folder for the sake of convenience.
I compile with $ gcc -c obj1.c -o obj1.o and link with $ ld --export-all-symbols -shared -o test-obj3.dll obj3.o pd.dll
compiling and linking works without any errors or warnings. test-obj1 and test-obj2 seem to load and work fine in Pd, but for test-obj3 Pd console tells me:
"C:\Program Files (x86)\pd vanilla\extra\stuff\test-obj3.dll: couldn't load"
The same thing happens when I try to build test-obj4, test-obj5 and test-dspobj~. What could be the problem? I took the source files as they were and built all objects the exact same way...
Many thanks in advance!
I should add that I followed the steps given here:
https://lists.puredata.info/pipermail/pd-list/2007-06/051560.html
However, "-export_dynamic" gave me:
C:\msys64\mingw32\bin\ld.exe: warning: cannot find entry symbol xport_dynamic; defaulting to 10001000
trying "-E" and "--export-dynamic":
C:\msys64\mingw32\bin\ld.exe: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?
so I tried with "--export-all-symbols" and this worked for obj1.c and obj2.c. I can't, however, see why it doesn't work for obj3.c as the difference to obj2.c is rather marginal (adds an outlet and a state variable).
Any hints are greatly appreciated!
Gesendet: Donnerstag, 07. April 2016 um 02:22 Uhr Von: "Christof Ressi" christof.ressi@gmx.at An: Pd-List pd-list@lists.iem.at Betreff: [PD] Externals built with MSYS2/MinGW won't load
Dear list,
I tried to compile the test externals in doc/6.externs on Windows 7 from the command line using MSYS2/MinGW. I put everything (source files, m_pd.h and pd.dll) in one folder for the sake of convenience.
I compile with $ gcc -c obj1.c -o obj1.o and link with $ ld --export-all-symbols -shared -o test-obj3.dll obj3.o pd.dll
compiling and linking works without any errors or warnings. test-obj1 and test-obj2 seem to load and work fine in Pd, but for test-obj3 Pd console tells me:
"C:\Program Files (x86)\pd vanilla\extra\stuff\test-obj3.dll: couldn't load"
The same thing happens when I try to build test-obj4, test-obj5 and test-dspobj~. What could be the problem? I took the source files as they were and built all objects the exact same way...
Many thanks in advance!
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi Christof,
I should add that I followed the steps given here:
https://lists.puredata.info/pipermail/pd-list/2007-06/051560.html
2007 is quite a long time ago. I have success with this description: http://puredata.info/docs/developer/WindowsMinGW, but this is 32-bits. Is there a special reason for compiling for 64-bits? I noticed 32-bits excutables works ok on a 64-bits Windows. And all externals at deken are 32-bits...
However, "-export_dynamic" gave me:
C:\msys64\mingw32\bin\ld.exe: warning: cannot find entry symbol xport_dynamic; defaulting to 10001000
trying "-E" and "--export-dynamic":
Some time ago the gmu compiler switched to '--export-dynamic' for this option.
C:\msys64\mingw32\bin\ld.exe: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?
so I tried with "--export-all-symbols" and this worked for obj1.c and obj2.c. I can't, however, see why it doesn't work for obj3.c as the difference to obj2.c is rather marginal (adds an outlet and a state variable).
Any hints are greatly appreciated!
About the previous errors; make really dislikes spaces in paths. Try it with paths without spaces.
Greetings & success,
Fred Jan
Gesendet: Donnerstag, 07. April 2016 um 02:22 Uhr Von: "Christof Ressi" christof.ressi@gmx.at An: Pd-List pd-list@lists.iem.at Betreff: [PD] Externals built with MSYS2/MinGW won't load
Dear list,
I tried to compile the test externals in doc/6.externs on Windows 7 from the command line using MSYS2/MinGW. I put everything (source files, m_pd.h and pd.dll) in one folder for the sake of convenience.
I compile with $ gcc -c obj1.c -o obj1.o and link with $ ld --export-all-symbols -shared -o test-obj3.dll obj3.o pd.dll
compiling and linking works without any errors or warnings. test-obj1 and test-obj2 seem to load and work fine in Pd, but for test-obj3 Pd console tells me:
"C:\Program Files (x86)\pd vanilla\extra\stuff\test-obj3.dll: couldn't load"
The same thing happens when I try to build test-obj4, test-obj5 and test-dspobj~. What could be the problem? I took the source files as they were and built all objects the exact same way...
Many thanks in advance!
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi Jan,
thanks for your thoughts!
There are no spaces in my path. I'm doing everything within a folder called C:/pd_externals. Also, I'm actually compiling for 32-bits, at least that's what I thought mingw32 is supposed to do... It's only the overall MSYS2 release that is 64bit.
Anyway, if there's anyone who has compiled simple externals for Windows using MINGW recently, please let me know and show me how you did it!
Gesendet: Donnerstag, 07. April 2016 um 17:20 Uhr Von: "Fred Jan Kraan" fjkraan@xs4all.nl An: pd-list@lists.iem.at Betreff: Re: [PD] Externals built with MSYS2/MinGW won't load
Hi Christof,
I should add that I followed the steps given here:
https://lists.puredata.info/pipermail/pd-list/2007-06/051560.html
2007 is quite a long time ago. I have success with this description: http://puredata.info/docs/developer/WindowsMinGW, but this is 32-bits. Is there a special reason for compiling for 64-bits? I noticed 32-bits excutables works ok on a 64-bits Windows. And all externals at deken are 32-bits...
However, "-export_dynamic" gave me:
C:\msys64\mingw32\bin\ld.exe: warning: cannot find entry symbol xport_dynamic; defaulting to 10001000
trying "-E" and "--export-dynamic":
Some time ago the gmu compiler switched to '--export-dynamic' for this option.
C:\msys64\mingw32\bin\ld.exe: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?
so I tried with "--export-all-symbols" and this worked for obj1.c and obj2.c. I can't, however, see why it doesn't work for obj3.c as the difference to obj2.c is rather marginal (adds an outlet and a state variable).
Any hints are greatly appreciated!
About the previous errors; make really dislikes spaces in paths. Try it with paths without spaces.
Greetings & success,
Fred Jan
Gesendet: Donnerstag, 07. April 2016 um 02:22 Uhr Von: "Christof Ressi" christof.ressi@gmx.at An: Pd-List pd-list@lists.iem.at Betreff: [PD] Externals built with MSYS2/MinGW won't load
Dear list,
I tried to compile the test externals in doc/6.externs on Windows 7 from the command line using MSYS2/MinGW. I put everything (source files, m_pd.h and pd.dll) in one folder for the sake of convenience.
I compile with $ gcc -c obj1.c -o obj1.o and link with $ ld --export-all-symbols -shared -o test-obj3.dll obj3.o pd.dll
compiling and linking works without any errors or warnings. test-obj1 and test-obj2 seem to load and work fine in Pd, but for test-obj3 Pd console tells me:
"C:\Program Files (x86)\pd vanilla\extra\stuff\test-obj3.dll: couldn't load"
The same thing happens when I try to build test-obj4, test-obj5 and test-dspobj~. What could be the problem? I took the source files as they were and built all objects the exact same way...
Many thanks in advance!
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi Christof,
Hi Jan,
thanks for your thoughts!
There are no spaces in my path. I'm doing everything within a folder called C:/pd_externals. Also, I'm actually compiling for 32-bits, at least that's what I thought mingw32 is supposed to do... It's only the overall MSYS2 release that is 64bit.
Anyway, if there's anyone who has compiled simple externals for Windows using MINGW recently, please let me know and show me how you did it!
You might want to look on the MinGW compiler options as Makefile.pdlibbuilder uses them for Windows systems (https://github.com/pure-data/pd-lib-builder). A relative simple example that compiled only a few days before: https://github.com/electrickery/pd-maxlib
Fred Jan
Gesendet: Donnerstag, 07. April 2016 um 17:20 Uhr Von: "Fred Jan Kraan" fjkraan@xs4all.nl An: pd-list@lists.iem.at Betreff: Re: [PD] Externals built with MSYS2/MinGW won't load
Hi Christof,
I should add that I followed the steps given here:
https://lists.puredata.info/pipermail/pd-list/2007-06/051560.html
2007 is quite a long time ago. I have success with this description: http://puredata.info/docs/developer/WindowsMinGW, but this is 32-bits. Is there a special reason for compiling for 64-bits? I noticed 32-bits excutables works ok on a 64-bits Windows. And all externals at deken are 32-bits...
However, "-export_dynamic" gave me:
C:\msys64\mingw32\bin\ld.exe: warning: cannot find entry symbol xport_dynamic; defaulting to 10001000
trying "-E" and "--export-dynamic":
Some time ago the gmu compiler switched to '--export-dynamic' for this option.
C:\msys64\mingw32\bin\ld.exe: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?
so I tried with "--export-all-symbols" and this worked for obj1.c and obj2.c. I can't, however, see why it doesn't work for obj3.c as the difference to obj2.c is rather marginal (adds an outlet and a state variable).
Any hints are greatly appreciated!
About the previous errors; make really dislikes spaces in paths. Try it with paths without spaces.
Greetings & success,
Fred Jan
Gesendet: Donnerstag, 07. April 2016 um 02:22 Uhr Von: "Christof Ressi" christof.ressi@gmx.at An: Pd-List pd-list@lists.iem.at Betreff: [PD] Externals built with MSYS2/MinGW won't load
Dear list,
I tried to compile the test externals in doc/6.externs on Windows 7 from the command line using MSYS2/MinGW. I put everything (source files, m_pd.h and pd.dll) in one folder for the sake of convenience.
I compile with $ gcc -c obj1.c -o obj1.o and link with $ ld --export-all-symbols -shared -o test-obj3.dll obj3.o pd.dll
compiling and linking works without any errors or warnings. test-obj1 and test-obj2 seem to load and work fine in Pd, but for test-obj3 Pd console tells me:
"C:\Program Files (x86)\pd vanilla\extra\stuff\test-obj3.dll: couldn't load"
The same thing happens when I try to build test-obj4, test-obj5 and test-dspobj~. What could be the problem? I took the source files as they were and built all objects the exact same way...
Many thanks in advance!
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Thanks a lot, pd-lib-builder was exactly the tool I was looking for!!! It works perfectly and it's easy to use :-).
Gesendet: Donnerstag, 07. April 2016 um 20:00 Uhr Von: "Fred Jan Kraan" fjkraan@xs4all.nl An: "Christof Ressi" christof.ressi@gmx.at Cc: pd-list@lists.iem.at Betreff: Re: Aw: Re: [PD] Externals built with MSYS2/MinGW won't load
Hi Christof,
Hi Jan,
thanks for your thoughts!
There are no spaces in my path. I'm doing everything within a folder called C:/pd_externals. Also, I'm actually compiling for 32-bits, at least that's what I thought mingw32 is supposed to do... It's only the overall MSYS2 release that is 64bit.
Anyway, if there's anyone who has compiled simple externals for Windows using MINGW recently, please let me know and show me how you did it!
You might want to look on the MinGW compiler options as Makefile.pdlibbuilder uses them for Windows systems (https://github.com/pure-data/pd-lib-builder). A relative simple example that compiled only a few days before: https://github.com/electrickery/pd-maxlib
Fred Jan
Gesendet: Donnerstag, 07. April 2016 um 17:20 Uhr Von: "Fred Jan Kraan" fjkraan@xs4all.nl An: pd-list@lists.iem.at Betreff: Re: [PD] Externals built with MSYS2/MinGW won't load
Hi Christof,
I should add that I followed the steps given here:
https://lists.puredata.info/pipermail/pd-list/2007-06/051560.html
2007 is quite a long time ago. I have success with this description: http://puredata.info/docs/developer/WindowsMinGW, but this is 32-bits. Is there a special reason for compiling for 64-bits? I noticed 32-bits excutables works ok on a 64-bits Windows. And all externals at deken are 32-bits...
However, "-export_dynamic" gave me:
C:\msys64\mingw32\bin\ld.exe: warning: cannot find entry symbol xport_dynamic; defaulting to 10001000
trying "-E" and "--export-dynamic":
Some time ago the gmu compiler switched to '--export-dynamic' for this option.
C:\msys64\mingw32\bin\ld.exe: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?
so I tried with "--export-all-symbols" and this worked for obj1.c and obj2.c. I can't, however, see why it doesn't work for obj3.c as the difference to obj2.c is rather marginal (adds an outlet and a state variable).
Any hints are greatly appreciated!
About the previous errors; make really dislikes spaces in paths. Try it with paths without spaces.
Greetings & success,
Fred Jan
Gesendet: Donnerstag, 07. April 2016 um 02:22 Uhr Von: "Christof Ressi" christof.ressi@gmx.at An: Pd-List pd-list@lists.iem.at Betreff: [PD] Externals built with MSYS2/MinGW won't load
Dear list,
I tried to compile the test externals in doc/6.externs on Windows 7 from the command line using MSYS2/MinGW. I put everything (source files, m_pd.h and pd.dll) in one folder for the sake of convenience.
I compile with $ gcc -c obj1.c -o obj1.o and link with $ ld --export-all-symbols -shared -o test-obj3.dll obj3.o pd.dll
compiling and linking works without any errors or warnings. test-obj1 and test-obj2 seem to load and work fine in Pd, but for test-obj3 Pd console tells me:
"C:\Program Files (x86)\pd vanilla\extra\stuff\test-obj3.dll: couldn't load"
The same thing happens when I try to build test-obj4, test-obj5 and test-dspobj~. What could be the problem? I took the source files as they were and built all objects the exact same way...
Many thanks in advance!
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Just for the sake of completeness, I followed your suggestion and checked which linker flags are actually passed for Windows. In my case it's:
gcc -static-libgcc -shared -Wl,--enable-auto-import "/c/...pd path.../bin/pd.dll" -o foo.dll foo.o
I tried to link manually with them and it works!
Gesendet: Donnerstag, 07. April 2016 um 21:26 Uhr Von: "Christof Ressi" christof.ressi@gmx.at An: "Fred Jan Kraan" fjkraan@xs4all.nl Cc: pd-list@lists.iem.at Betreff: Re: [PD] Externals built with MSYS2/MinGW won't load
Thanks a lot, pd-lib-builder was exactly the tool I was looking for!!! It works perfectly and it's easy to use :-).
Gesendet: Donnerstag, 07. April 2016 um 20:00 Uhr Von: "Fred Jan Kraan" fjkraan@xs4all.nl An: "Christof Ressi" christof.ressi@gmx.at Cc: pd-list@lists.iem.at Betreff: Re: Aw: Re: [PD] Externals built with MSYS2/MinGW won't load
Hi Christof,
Hi Jan,
thanks for your thoughts!
There are no spaces in my path. I'm doing everything within a folder called C:/pd_externals. Also, I'm actually compiling for 32-bits, at least that's what I thought mingw32 is supposed to do... It's only the overall MSYS2 release that is 64bit.
Anyway, if there's anyone who has compiled simple externals for Windows using MINGW recently, please let me know and show me how you did it!
You might want to look on the MinGW compiler options as Makefile.pdlibbuilder uses them for Windows systems (https://github.com/pure-data/pd-lib-builder). A relative simple example that compiled only a few days before: https://github.com/electrickery/pd-maxlib
Fred Jan
Gesendet: Donnerstag, 07. April 2016 um 17:20 Uhr Von: "Fred Jan Kraan" fjkraan@xs4all.nl An: pd-list@lists.iem.at Betreff: Re: [PD] Externals built with MSYS2/MinGW won't load
Hi Christof,
I should add that I followed the steps given here:
https://lists.puredata.info/pipermail/pd-list/2007-06/051560.html
2007 is quite a long time ago. I have success with this description: http://puredata.info/docs/developer/WindowsMinGW, but this is 32-bits. Is there a special reason for compiling for 64-bits? I noticed 32-bits excutables works ok on a 64-bits Windows. And all externals at deken are 32-bits...
However, "-export_dynamic" gave me:
C:\msys64\mingw32\bin\ld.exe: warning: cannot find entry symbol xport_dynamic; defaulting to 10001000
trying "-E" and "--export-dynamic":
Some time ago the gmu compiler switched to '--export-dynamic' for this option.
C:\msys64\mingw32\bin\ld.exe: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?
so I tried with "--export-all-symbols" and this worked for obj1.c and obj2.c. I can't, however, see why it doesn't work for obj3.c as the difference to obj2.c is rather marginal (adds an outlet and a state variable).
Any hints are greatly appreciated!
About the previous errors; make really dislikes spaces in paths. Try it with paths without spaces.
Greetings & success,
Fred Jan
Gesendet: Donnerstag, 07. April 2016 um 02:22 Uhr Von: "Christof Ressi" christof.ressi@gmx.at An: Pd-List pd-list@lists.iem.at Betreff: [PD] Externals built with MSYS2/MinGW won't load
Dear list,
I tried to compile the test externals in doc/6.externs on Windows 7 from the command line using MSYS2/MinGW. I put everything (source files, m_pd.h and pd.dll) in one folder for the sake of convenience.
I compile with $ gcc -c obj1.c -o obj1.o and link with $ ld --export-all-symbols -shared -o test-obj3.dll obj3.o pd.dll
compiling and linking works without any errors or warnings. test-obj1 and test-obj2 seem to load and work fine in Pd, but for test-obj3 Pd console tells me:
"C:\Program Files (x86)\pd vanilla\extra\stuff\test-obj3.dll: couldn't load"
The same thing happens when I try to build test-obj4, test-obj5 and test-dspobj~. What could be the problem? I took the source files as they were and built all objects the exact same way...
Many thanks in advance!
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list