Manuel-Kehl / Go-For-It

A stylish to-do list with built-in productivity timer. NOTE: all contributions should go to Jonathan Moerman's fork because this is where active development is taking place: https://github.com/JMoerman/Go-For-It
http://manuel-kehl.de/projects/go-for-it/
GNU General Public License v3.0
516 stars 51 forks source link

[BUG] Crosscompile ubuntu from windows #148

Closed evertonaleixo closed 4 years ago

evertonaleixo commented 4 years ago

Hello, I am trying to crosscompile the windows branch using:

cmake -DCMAKE_INSTALL_PREFIX=/home/everton/playground/Go-For-It/bin .. -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_C_COMPILER_FORCED=true -DCMAKE_CXX_COMPILER_FORCED=true

But there are an error:

[ 11%] Building C object src/CMakeFiles/go-for-it.dir/Constants.c.o 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 /home/everton/playground/Go-For-It/build/src/Constants.c:22: /usr/include/glib-2.0/glib/gtypes.h: In function ‘_GLIB_CHECKED_ADD_U64’: /usr/include/glib-2.0/glib/gmacros.h:241:53: error: size of array ‘_GStaticAssertCompileTimeAssertion_0’ is negative

define G_STATIC_ASSERT(expr) typedef char G_PASTE (GStaticAssertCompileTimeAssertion, COUNTER)[(expr) ? 1 : -1] G_GNUC_UNUSED

                                                 ^

/usr/include/glib-2.0/glib/gmacros.h:238:47: note: in definition of macro ‘G_PASTE_ARGS’

define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2

                                           ^~~~~~~~~~~

/usr/include/glib-2.0/glib/gmacros.h:241:44: note: in expansion of macro ‘G_PASTE’

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)); ^~~~~~~ src/CMakeFiles/go-for-it.dir/build.make:126: recipe for target 'src/CMakeFiles/go-for-it.dir/Constants.c.o' failed make[2]: [src/CMakeFiles/go-for-it.dir/Constants.c.o] Error 1 CMakeFiles/Makefile2:85: recipe for target 'src/CMakeFiles/go-for-it.dir/all' failed make[1]: [src/CMakeFiles/go-for-it.dir/all] Error 2 Makefile:129: recipe for target 'all' failed

Could someone help me? Thanks.

JMoerman commented 4 years ago

I have no experience with cross-compiling, but at least in 2017 the native Windows build instructions could be used to compile Go For It! on Windows. The error you encountered does not seem to originate from an issue in Go For It! code, but seems to come from within GLib. I fear I cannot be of any help in this case...

I can only give this advice: try to get a simple program using GLib (i.e. any application using Gtk+-3.0) to compile. GLib is a core dependency of pretty much all graphical Gnu/Linux (+BSD) applications that aren't using Qt.

evertonaleixo commented 4 years ago

Thanks for response! I will try your advice. And I will close this issue because it is a GLib problem. Thanks again.