2017-05-18 1 views
0

J'ai un problème étrange. J'ai un programme qui dépend de Qt, Zlib et ruby ​​que je compile sur ubuntu en utilisant mxe (x86_64-w64-mingw32.shared).C++ programme de compilation croisée sur Linux en utilisant MINGW fonctionne dans msys2, mais pas directement dans Windows

Le ruby ​​que j'utilise n'est pas inclus dans les packages mxe, mais a été compilé avec la même chaîne d'outils.

Ensuite, j'ai une machine virtuelle de test Windows 10 64 bits avec msys2 installé. Quand j'exécute le programme depuis wine sur linux ou dans msys2 sur Windows cela fonctionne sans aucun problème. Mais quand je lance directement depuis l'explorateur du démarrage du programme comme prévu mais ne parviennent pas quand je lance ruby_setup() (je RUBY_INIT_STACK; avant, mais pas ruby_sysinit(&argc, &argv); depuis que je suis perdu au milieu de mon programme.

La liste des dll fournie avec mon programme (préfixé avec agathe_ moyenne, ils sont codés par moi, initiallisation rubis se fait en agathe_ruby.dll):

agathe_config.dll 
agathe_models.dll 
agathe_modules.dll 
agathe_params.dll 
agathe_ressources.dll 
agathe_ruby.dll 
agathe_utils.dll 
agathe_views.dll 
agathe_widgets.dll 
libbz2.dll 
libeay32.dll 
libffi-6.dll 
libfreetype-6.dll 
libgcc_s_seh-1.dll 
libgdbm-3.dll 
libgdbm_compat-3.dll 
libglib-2.0-0.dll 
libgmp-10.dll 
libharfbuzz-0.dll 
libiconv-2.dll 
libintl-8.dll 
libjasper-1.dll 
libjpeg-9.dll 
liblcms2-2.dll 
liblzma-5.dll 
libmng-2.dll 
libpcre16-0.dll 
libpcre-1.dll 
libpng16-16.dll 
libstdc++-6.dll 
libtiff-5.dll 
libwebp-5.dll 
libwebpdemux-1.dll 
libyaml-0-2.dll 
libzip-4.dll 
qsvgicon.dll 
Qt5Core.dll 
Qt5Gui.dll 
Qt5Svg.dll 
Qt5Widgets.dll 
ssleay32.dll 
x64-msvcrt-ruby230.dll 
zlib1.dll 

-ce que quelqu'un encourted ce même problème et est au courant d'un moyen de le réparer

?

Répondre

0

Ok, j'ai trouvé un moyen de résoudre ce problème ... Je ne sais pas exactement comment procédure était:

  • déplacer l'appel à ruby_setup() quelque part il n'est pas atteint après une résolution de pointeur de fonction.
  • make clean
  • puis de réexécuter la procédure de compilation croisée complète.