1

I am cross-compiling an SFML application from a Linux host to a Windows guest. I downloaded the SJLJ 64-bit version of SFML and compiled/linked with x86_64-w64-mingw32-g++ and the -static, -static-libgcc, and -static-libstdc++ options. I still needed to copy the dll's from the SFML bin directory to my own, so I did. The application now successfully compiles and links for either Linux or Windows, depending on which makefile I specify.

However, running the Windows version (via Wine) results in a lot of errors: I am missing libgcc_s_seh_64-1.dll, libstdc++_64-6.dll, and strangely, both sfml-system-2.dll and sfml-window-2.dll, which are right next to the application. Why are existing dll's not imported? Why is SEH gcc needed by sfml-system-2.dll, which is ostensibly SJLJ, and why is sfml-system-2.dll then listed as missing if it caused that previous error? Or is the error the reason it is considered 'missing'? Sorry if this is cryptic, I'll clarify what I can.

I was following this article (http://chienloco.com/wp/cross-compile-games-for-windows-on-linux-with-mingw/), however I don't have anything called i586-mingw32msvc-g++, so I can't follow it perfectly. Ideally I'd like to cross-compile everything from Linux and just worry about testing on guests without setting them up as development environments.

--Edit - there is no GCC SJLJ, so I'm going to try with the GCC SEH version next. I'll update with the results. -- That's a negative, same results.

John P
  • 1,463
  • 3
  • 19
  • 39

0 Answers0