SFML community forums
Help => General => Topic started by: flamendless on December 07, 2018, 05:47:59 am
-
Hi, this is my first time using sfml and dear imgui and c++ for a project.
My project runs perfectly on my linux machine, I used mingw-w64-gcc and mingw-w64-g++ to cross-compile my project to a windows executable. I am not using any IDE, I have a makefile. Now, everything works, it compiles, links, and no error whatsoever when im building one for windows. To prove this, I run the .exe using Wine,
1. First of all, I get this `missing libstdc++-6.dll` and `missing libgcc_s_sjlj-1.dll` and such errors. So I've located the following dll and copy pasted it next to my .exe
I have copied the files from `/usr/i686-w64-mingw32/bin/` (because that's the mingw compiler Ive also used. Running again with wine, it works. But when I tested it on an actual Windows (on my friend's pc), I get this `__gxx_personality_v0` error.
2. Second, Ive tried `static linking`, instead of using `-lsfml-graphics` and such for my linker flags, I have used `-lsfml-graphics-s` and such, but I get this `undefined reference` to a bunch of `gl` stuffs. So ive added `-lopengl32 -lwinmm` and stuffs the forum said i should include, I have also passed the `SFML_STATIC` preprocessor macro. Still the same `undefined references` errors.
If you need my Makefile, it's in the attachments below.
please help me.
-
Since you're most certainly aren't using the same MinGW/GCC compiler that was used to build the SFML DLLs, have you rebuilt SFML yourself?
Related Reddit post (https://www.reddit.com/r/sfml/comments/a3ldws/sfml_25_project_works_with_wine_but_not_on_windows/)
-
Since you're most certainly aren't using the same MinGW/GCC compiler that was used to build the SFML DLLs, have you rebuilt SFML yourself?
Related Reddit post (https://www.reddit.com/r/sfml/comments/a3ldws/sfml_25_project_works_with_wine_but_not_on_windows/)
Oh, so will i compile sfml using mingw or clang?
Clang is what i use for linux build while mingw for crosscompile for windows
-
You want to use the same compiler for building SFML and for building your project.
-
Okay, problem, I am trying to compile and build SFML source using i686-w64-mingw32 on linux. Ive set up the proper compilers. But when configuring with cmake, i get this "wrong make" (the config uses linux make, which i think causes the errors) (Note: there is no equivalent make program on mingw32)
UPDATE:
I am now using this toolchain i got from here (https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/cross_compiling/Mingw).
The error is now:
Found OpenGL: opengl32
Looking for dinput.h
Looking for dinput.h - found
CMake Error at cmake/Macros.cmake:296 (message):
Missing item in FREETYPE_LIBRARY
Call Stack (most recent call first):
src/SFML/Graphics/CMakeLists.txt:137 (sfml_find_package)
UPDATE 2:
It works now! Ive installed mingw-w64-freetype2 and mingw-w64-openal from the AUR. Now, it's compiling, gotta wait to see if it properly builds the dlls. Also, i hope this works now when i run it on actual an Windows
It compiled and builded dlls! It also works with wine still, now im gonna wait for my friend to confirm if it's working on his Windows machine. Thanks community :)
QUESTION:
the wiki says there's a mingw makefile, but it's not present anymore. why?