Welcome, Guest. Please login or register.

Author Topic: Executable runs on Wine, but NOT on Windows.  (Read 74 times)

0 Members and 1 Guest are viewing this topic.

flamendless

  • Newbie
  • *
  • Posts: 3
    • View Profile
    • Email
Executable runs on Wine, but NOT on Windows.
« 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.

eXpl0it3r

  • SFML Team
  • Hero Member
  • *****
  • Posts: 8999
    • View Profile
    • development blog
    • Email
Re: Executable runs on Wine, but NOT on Windows.
« Reply #1 on: December 07, 2018, 10:49:42 am »
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
Official FAQ: https://www.sfml-dev.org/faq.php
Nightly Builds: https://www.nightlybuilds.ch/
——————————————————————
Dev Blog: https://dev.my-gate.net/
Thor: http://www.bromeon.ch/libraries/thor/

flamendless

  • Newbie
  • *
  • Posts: 3
    • View Profile
    • Email
Re: Executable runs on Wine, but NOT on Windows.
« Reply #2 on: December 07, 2018, 02:02:41 pm »
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

Oh, so will i compile sfml using mingw or clang?
Clang is what i use for linux build while mingw for crosscompile for windows

Rosme

  • Full Member
  • ***
  • Posts: 144
  • Proud member of the shoe club
    • View Profile
    • Code-Concept
Re: Executable runs on Wine, but NOT on Windows.
« Reply #3 on: December 07, 2018, 03:19:41 pm »
You want to use the same compiler for building SFML and for building your project.
GitHub
Code Concept
Twitter
Rosme on IRC/Discord

flamendless

  • Newbie
  • *
  • Posts: 3
    • View Profile
    • Email
Re: Executable runs on Wine, but NOT on Windows.
« Reply #4 on: December 07, 2018, 05:16:32 pm »
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.

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?

« Last Edit: December 07, 2018, 06:13:30 pm by flamendless »