Ошибка запуска .exe, скомпилированного с i586-mingw32msvc-g ++ и SFML на Linux

РЕДАКТИРОВАТЬ: Спасибо случайный downvoter!

РЕДАКТИРОВАТЬ 2: Спасибо @ πάνταῥεῖ за объяснение, что не так с этим вопросом. При запуске отладчика я получаю

Program received signal SIGSEGV, Segmentation fault.
0x0046f4c6 in ?? ()

РЕДАКТИРОВАТЬ 3: Это происходит только если я запускаю кросс-скомпилированную программу. Если я компилирую программу в Windows и запускаю ее с WINE, ничего плохого не произойдет.

Итак, я борюсь с WINE и MinGW32 прямо сейчас.
Итак, у меня есть файл, sortem.cpp который скомпилирован с Makefile и связан и все из этого Makefile.

sortem.cpp

#include <windows.h>
#include <iostream>
#include <string>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>

int main ()
{
sf::RenderWindow window;
window.create(sf::VideoMode(720,480),"Sort 'em!");
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
window.clear();
switch (event.type)
{
case sf::Event::Closed:
window.close();
}
window.display();
}
}
return 0;
}

Makefile

LD = ../bin
LIBS= $(LD)/sfml-window-2.dll $(LD)/sfml-system-2.dll $(LD)/sfml-graphics-2.dll $(LD)/sfml-network-2.dll $(LD)/sfml-audio-2.dll
OBJECTS= sortem.o
CXX= i586-mingw32msvc-g++
all: sortem.exe

sortem.exe: $(OBJECTS)
$(CXX) -o ../bin/sortem.exe $(OBJECTS) $(LIBS)

%.o: %.cpp
$(CXX) -c $<

clean:
rm *.o

Так что программа отлично компилируется, но при запуске sortem.exe с вином, он говорит, что программа должна выйти. Я нажимаю «Показать подробности», и это появляется. Unhandled exception: page fault on write access to 0x00000000 in 32-bit code (0x0046f4c6).и много hexdumps. Я действительно не знаю, что я делаю неправильно, может быть, библиотеки SFML не устарели? Но это дало бы мне ошибку компиляции, а не ошибку времени выполнения … Большое спасибо за помощь, ребята.

-1

Решение

Библиотеки были скомпилированы с MinGW GCC 4.7.1, и я пытался скомпилировать свою программу с MinGW GCC 4.8.1, понизив версию благодаря другу и вернув ее в онлайн. Спасибо вам всем за то, что показали мне, как отлаживать.
мир

0

Другие решения


По вопросам рекламы [email protected]