Bonjour,
Pour un projet j'utilise Qt 5.0.2 (MinGW 4.7.2) conjointement avec SFML 2.1.
Tout fonctionne bien jusqu'à ce que j'utilise le module Network. En effet, dès que j'utilise une fonctionnalité du module Network, lorsque j'exécute mon programme, j'ai le message d'erreur suivant :
Le point d'entrée de procédure __gxx_personality_v0 est introuvable dans la bibliothèque de liens dynamiques libstdc++-6.dll.
Il n'y a aucun problème à la compilation. C'est juste lorsque j'exécute mon programme que ça plante...
La DLL libstdc++-6.dll est bien présente dans le dossier de l'exécutable tout comme les DLL de Qt et de SFML (y compris sfml-network-d-2.dll).
Dès que j'enlève tout ce qui vient du module Network le programme se lance normalement. Par exemple, ce code fait planter le programme :
#include "MainWindow.h"
#include <QApplication>
#include <SFML/Network.hpp>
int main(int argc, char *argv[])
{
sf::Packet packet;
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
Alors qu'avec ce code ça fonctionne (il y a juste la ligne sf::Packet packet; en moins) :
#include "MainWindow.h"
#include <QApplication>
#include <SFML/Network.hpp>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
Voici comment je link SFML avec le .pro de Qt Creator :
win32:CONFIG(release, debug|release): LIBS += -LC:/SFML-2.1-mingw/lib/ -lsfml-graphics -lsfml-main -lsfml-system -lsfml-window -lsfml-network
else:win32:CONFIG(debug, debug|release): LIBS += -LC:/SFML-2.1-mingw/lib/ -lsfml-graphics-d -lsfml-main-d -lsfml-system-d -lsfml-window-d -lsfml-network-d
INCLUDEPATH += C:/SFML-2.1-mingw/include
DEPENDPATH += C:/SFML-2.1-mingw/include
Sauriez-vous d'où vient le problème ou bien comment le résoudre ?
Merci.
Voici ce que donne gcc -v :
C:\Qt\Qt5.0.2\Tools\MinGW\bin>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-4.7.2/configure --host=i686-w64-mingw32 --buil
d=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/temp/x32-4.7.2-posix-sjlj
-r8/prefix --with-sysroot=/temp/x32-4.7.2-posix-sjlj-r8/prefix --enable-shared -
-enable-static --enable-targets=all --enable-multilib --enable-languages=c,c++,f
ortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp -
-enable-lto --enable-graphite --enable-cloog-backend=isl --enable-checking=relea
se --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable
-sjlj-exceptions --disable-ppl-version-check --disable-cloog-version-check --dis
able-libstdcxx-pch --disable-libstdcxx-debug --disable-bootstrap --disable-rpath
--disable-win32-registry --disable-nls --disable-werror --disable-symvers --wit
h-gnu-as --with-gnu-ld --with-arch-32=i686 --with-arch-64=nocona --with-tune-32=
core2 --with-tune-64=core2 --with-host-libstdcxx='-static -lstdc++' --with-libic
onv --with-system-zlib --with-gmp=/temp/mingw-prereq/i686-w64-mingw32-static --w
ith-mpfr=/temp/mingw-prereq/i686-w64-mingw32-static --with-mpc=/temp/mingw-prere
q/i686-w64-mingw32-static --with-ppl=/temp/mingw-prereq/i686-w64-mingw32-static
--with-cloog=/temp/mingw-prereq/i686-w64-mingw32-static --with-pkgversion='Built
by MinGW-builds project' --with-bugurl=http://sourceforge.net/projects/mingwbui
lds/ CFLAGS='-O2 -pipe -fomit-frame-pointer -I/temp/x32-4.7.2-posix-sjlj-r8/libs
/include -I/temp/mingw-prereq/x32-zlib/include -I/temp/mingw-prereq/i686-w64-min
gw32-static/include' CXXFLAGS='-O2 -pipe -fomit-frame-pointer -I/temp/x32-4.7.2-
posix-sjlj-r8/libs/include -I/temp/mingw-prereq/x32-zlib/include -I/temp/mingw-p
rereq/i686-w64-mingw32-static/include' CPPFLAGS= LDFLAGS='-pipe -L/temp/x32-4.7.
2-posix-sjlj-r8/libs/lib -L/temp/mingw-prereq/x32-zlib/lib -L/temp/mingw-prereq/
i686-w64-mingw32-static/lib -L/temp/x32-4.7.2-posix-sjlj-r8/prefix/opt/lib'
Thread model: posix
gcc version 4.7.2 (Built by MinGW-builds project)
Bah tous les autres modules fonctionnent : graphics, system, window (je n'ai pas testé audio, je n'en ai pas besoin). C'est seulement quand j'ajoute network que tout plante et que le message d'erreur apparaît.