[PD-dev] Cross Compiling External for Windows - Problem

Thomas Mayer thomas at residuum.org
Fri Aug 10 10:49:15 CEST 2012


Hello,

I try to cross compile my external PuREST JSON for Windows using MXE on 
Linux. According to their tutorial, a little work is necessary on the 
Makefile to be able to cross-compile (http://mxe.cc/#tutorial):

-- Start quote --
Step 5d: Cross compile your Project (Makefile)

If you have a handwritten Makefile, you probably will have to make a few 
adjustments to it:

CC=$(CROSS)gcc
LD=$(CROSS)ld
AR=$(CROSS)ar
PKG_CONFIG=$(CROSS)pkg-config

You may have to add a few others, depending on your project.

Then, all you have to do is:

make CROSS=i686-pc-mingw32-

That's it!
-- End     quote --

That is, what I tried, and compilation is working, but the linker does 
not work, and outputs:

i686-pc-mingw32-gcc -shared -o libpurest_json.dll libpurest_json.o 
-lcurl -ljson -L"/home/thomas/src/Pd-0.42.5-extended/pd-win/src" 
-L"/home/thomas/src/Pd-0.42.5-extended/pd-win/bin" 
-L"/home/thomas/src/Pd-0.42.5-extended/pd-win/obj" -lpd -lwsock32 
-lkernel32 -luser32 -lgdi32 -liberty -lpthread
libpurest_json.o: In function `output_json':
/home/thomas/src/pd/my-objects/purest_json/libpurest_json.c:145: 
undefined reference to `s_list'
/opt/mxe/usr/lib/gcc/i686-pc-mingw32/4.7.1/../../../../i686-pc-mingw32/lib/libjson.a(printbuf.o): 
In function `vasprintf':
/opt/mxe/tmp-json-c/json-c-0.10/printbuf.c:130: undefined reference to 
`_vscprintf'
/opt/mxe/usr/lib/gcc/i686-pc-mingw32/4.7.1/../../../../i686-pc-mingw32/lib/libmingwex.a(pformat.o):pformat.c:(.text+0x1732): 
undefined reference to `_get_output_format'
collect2: error: ld returned 1 exit status
make: *** [libpurest_json.dll] Fehler 2

I have pd.dll in the path /home/thomas/src/Pd-0.42.5-extended/pd-win/bin.

The complete Makefile and input / output of make is at 
https://gist.github.com/3307768

Here are my questions:
Does gcc use the wrong linker (ld instead of i686-pc-mingw32-ld)?
Is there a way to force gcc to use the correct linker?
Do I something else than pd.dll for linking?

Thanks in advance,
Thomas
-- 
"Theoretically, [the amount of money in circulation] is watched
carefully by clever, serious economists. In practice, all the world's
money is one big swirling, whirling pool." (Cory Doctorow - For The Win)
http://www.residuum.org/




More information about the Pd-dev mailing list