diff --git a/HowTo-Cross-Compile.md b/HowTo-Cross-Compile.md index bbf4daa..faa1dae 100644 --- a/HowTo-Cross-Compile.md +++ b/HowTo-Cross-Compile.md @@ -17,7 +17,7 @@ The following sources are needed: - [libepoxy](https://github.com/anholt/libepoxy) - [GTK+](https://www.gtk.org/) -# Prepare the `cross-file.ini` +## Prepare the `cross-file.ini` This configuration file will be needed on all meson based builds. @@ -42,7 +42,7 @@ This configuration file will be needed on all meson based builds. exe_wrapper = 'wine64' -# lib-glib +## lib-glib Compile the library using the following steps. @@ -59,70 +59,71 @@ Because not all compiled `*.dll` files are installed into the destination we nee cp `find -name "*.dll"` /opt/W64-cross-compile/lib/ -# atk +## atk +Edit the `meson_options.txt` file and disable the building of the introspection files. Compile the library using the following steps. mkdir build cd build PKG_CONFIG_PATH=/opt/W64-cross-compile/lib/pkgconfig meson --buildtype=release --prefix=/opt/W64-cross-compile/ --cross-file ../../cross-file.ini - mseon compile + meson compile meson install Copy manualy all compiled `*.dll` files to the destination cp `find -name "*.dll"` /opt/W64-cross-compile/lib/ -# pango +## pango -Compile the library using the following steps. +Compile the library using the following steps. This will also download and compile some more librarys like `libpng` and `cairo` librarys. mkdir build cd build PKG_CONFIG_PATH=/opt/W64-cross-compile/lib/pkgconfig meson --buildtype=release --prefix=/opt/W64-cross-compile/ --cross-file ../../cross-file.ini - mseon compile + meson compile + +In case of an error with unresolved symbols like undefined reference to '__strcat_chk'. You need to edit the `cross-file.ini` and add the linker flags/option `-lssp` to the `c_link_args` parameters. Remove the build directory and restart configuring and compiling this libraray again. + meson install cp `find -name "*.dll"` /opt/W64-cross-compile/lib/ -# gdk-pixbuf +## gdk-pixbuf mkdir build cd build PKG_CONFIG_PATH=/opt/W64-cross-compile/lib/pkgconfig meson --buildtype=release --prefix=/opt/W64-cross-compile/ --cross-file ../../cross-file.ini - mseon compile + meson compile meson install cp `find -name "*.dll"` /opt/W64-cross-compile/lib/ -# libepoxy - - -Compile the library using the following steps. +## libepoxy mkdir build cd build PKG_CONFIG_PATH=/opt/W64-cross-compile/lib/pkgconfig meson --buildtype=release --prefix=/opt/W64-cross-compile/ --cross-file ../../cross-file.ini - mseon compile + meson compile meson install cp `find -name "*.dll"` /opt/W64-cross-compile/lib/ -# GTK +## GTK -## preparation beacuse of `wine` +### preparation beacuse of `wine` Copy all compiled executeble and library files into the wine windows/system folder. cp /opt/W64-cross-compile/bin/*.exe ~/.wine/drive_c/windows/system32/ cp /opt/W64-cross-compile/lib/*.dll ~/.wine/drive_c/windows/system32/ -## workaround for some issues +### workaround for some issues edit the file `gdk/win32/gdkprivate-win32.h` and search around line 300 for the following declaration. The compiler is missing the **extern** statement here. 300 /* The singleton selection object pointer */ 301 extern GdkWin32Selection *_win32_selection; -## compile first attempt +### compile first attempt Configure and compile the library. @@ -130,7 +131,7 @@ Configure and compile the library. PKG_CONFIG_PATH=/opt/W64-cross-compile/lib/pkgconfig make make install -## fix and install the compilation +### fix and install the compilation /bin/bash: Zeile 1: ../../gtk/gtk-update-icon-cache.exe: Kann die Binärdatei nicht ausführen: Fehler im Format der Programmdatei make[3]: *** [Makefile:1673: install-update-icon-cache] Fehler 126