Compiling for Linux x86 on a Linux x64 (Juce 5.0.1)


#1

Hello,
i’ve read some post about cross compiling from a 64 bit linux to a 32 bit, but after struggling with dependencies, i turning to the community.

I have an Ubuntu 64bit and i’m trying to compile for 32bit, but i get a lot of dependency problems.
I tried installing the i386 packages, but it messed up everything, replacing the original packages and i couldn’t even compile for x64 anymore. So i switched back all the packages, but i’m still unable to compile for 32 bit.

The error occurs when compiling juce_gui_extra, here is the log :

Compiling include_juce_gui_extra.cpp In file included from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9:0, from /usr/include/glib-2.0/glib/gtypes.h:32, from /usr/include/glib-2.0/glib/galloca.h:32, from /usr/include/glib-2.0/glib.h:30, from /usr/include/gtk-3.0/gdk/gdkconfig.h:13, from /usr/include/gtk-3.0/gdk/gdk.h:30, from /usr/include/gtk-3.0/gtk/gtk.h:30, from ../../../JUCE/modules/juce_gui_extra/juce_gui_extra.cpp:78, from ../../JuceLibraryCode/include_juce_gui_extra.cpp:9: /usr/include/glib-2.0/glib/gtypes.h: In function ‘gboolean _GLIB_CHECKED_ADD_U64(guint64*, guint64, guint64)’: /usr/include/glib-2.0/glib/gmacros.h:142:29: error: size of array ‘_GStaticAssertCompileTimeAssertion_0’ is negative __attribute__((__unused__)) ^ /usr/include/glib-2.0/glib/gmacros.h:232:120: note: in expansion of macro ‘G_GNUC_UNUSED’ #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED ^~~~~~~~~~~~~ /usr/include/glib-2.0/glib/gtypes.h:423:3: note: in expansion of macro ‘G_STATIC_ASSERT’ G_STATIC_ASSERT(sizeof (unsigned long long) == sizeof (guint64)); ^~~~~~~~~~~~~~~ Makefile:2163: recipe for target 'build/intermediate/x86/include_juce_gui_extra_6dee1c1a.o' failed make: *** [build/intermediate/x86/include_juce_gui_extra_6dee1c1a.o] Error 1


#2

I use pbuilder_dist to compile my projects for different distributions and to compile x86 on a x86-64 machine. It’s super useful. In particular, see this paragraph.


#3

Thank you !