En outre, si tu utilise une version 64bits de Gcc et de binutils, il faut veiller à ce que binutils ait été effectivement compilé avec une version de Gcc capable de fournir des exécutables 64bits.
Cela n'a l'air de rien, mais, lorsque tu compile toi même ces différents outils, binutils (et ld en particulier

) est compilé une première fois avec un compilateur qui, classiquement, ne fournit que des exécutables 32bits.
Tu te trouve donc avec une version 32bit de ld capable d'effectuer l'édition de liens d'applications 64 bits.
Mais, cette version de ld subit exactement les restrictions propres aux applications 32bits, dont, principalement, la restriction à une utilisation de maximum 2Gb de mémoire.
Si je t'en parle, c'est simplement par expérience: si tu ne dispose pas d'une version 64bits de ld, le processus "plantera" à un moment parce que ld ne pourra pas utiliser suffisamment de mémoire lors du processus de compilation de Qt.
Si tu compile toi-même les différents outils, tu dois donc veiller à compiler deux fois binutils:
- La première fois en début de processus, de manière à ce qu'il puisse gérer les fichiers objets 64 bits
- La seconde fois en fin de processus (après avoir compilé gcc) afin que ce soit effectivement une application 64 bits
Hope it helps

Partager