Construire GCC le compilateur croisé (à partir de “Linux” pour “Windows”)
Je veux construire "gcc compilateur croisé" compiler "c/c++" des applications sur "Linux" environnement, mais aussi pour "Windows" de la cible.
J'ai fait jusqu'à présent:
- Installé les outils nécessaires et de forfaits pour la construction de GCC répertoriés sur "Conditions préalables pour GCC" page.
- Téléchargé les sources requises:
"gcc-core-4.4.1", "gcc-g++-4.4.1", "binutils-articles 2.19.1", "w32api-3.13-mingw32", "mingwrt-3.16-mingw32" - Créé cette hiérarchie de répertoire:
"${HOME}/gcc/" - pour la finale de cross-compilateur
"${HOME}/src/" - pour les sources
"${HOME}/src/build-binutils/i386-mingw32/" - pour la construction de binutils "i386-mingw32" target
"${HOME}/src/build-gcc/i386-mingw32/" - pour la construction de gcc pour "i386-mingw32" target - Construit le paquet binutils:
cd "${HOME}/src/build-binutils/i386-mingw32/"
../../binutils-articles 2.19.1/configure --prefix="${HOME}/gcc" --target=i386-mingw32 --disable-nls
faire
faire installer - Copié "w32api" et "mingwrt" en-têtes pour le répertoire d'installation:
cp-R "${HOME}/src/w32api-3.13-mingw32/include" "${HOME}/gcc/i386-mingw32"
cp-R "${HOME}/src/mingwrt-3.16-mingw32/include" "${HOME}/gcc/i386-mingw32"
Et maintenant, quand je suis en train de construire le "c (uniquement) cross-compilateur":
cd "${HOME}/src/build-gcc/i386-mingw32/"
../../gcc-4.4.1/configure --prefix="${HOME}/gcc" --target=i386-mingw32 --enable-languages=c --with-headers="${HOME}/gcc/i386-mingw32/include" --disable-nls
make<br>
il était en train de construire quelque chose à propos de 4 minutes, puis me donne ces erreurs:
${HOME}/gcc/i386-mingw32/bin/ld: dllcrt2.o: No such file: No such file or directory
collect2: ld returned 1 exit status
make[2]: *** [libgcc_s.dll] Error 1
make[2]: Leaving directory `${HOME}/src/build-gcc/i386-mingw32/i386-mingw32/libgcc'
make[1]: *** [all-target-libgcc] Error 2
make[1]: Leaving directory `${HOME}/src/build-gcc/i386-mingw32'
make: *** [all] Error 2
À partir de ce message d'erreur je ne sais vraiment pas quoi faire maintenant :-((( .
Quelqu'un sait où est le problème?
Merci.
OriginalL'auteur Petike | 2009-09-24
Vous devez vous connecter pour publier un commentaire.
C'est effectivement OK: la façon dont les choses vont, vous devez
dllcrt2.o
)Vous avez réussi effectué l'étape 3 ci-dessus; il échoue bâtiment libgcc (qui est un GCC bibliothèque de prise en charge), mais cela signifie que le compilateur C de base est fonctionnel (bien qu'il ne sera pas en mesure de le lien, ça peut toujours créer d'objet valide de fichiers). Vous pouvez le vérifier en regardant le
gcc/xgcc
fichier dans votre répertoire de compilation de GCC.Donc, vous avez besoin d'aller à l'étape suivante, ne pas s'inquiéter au sujet de votre échec actuel.
(À actuall installer partielle compilateur C, vous devez exécuter
make
avec le-k
option, pour faire mieux, même dans le visage d'erreurs. Par exemple, l'utilisationmake -k install
.)Je suis désolé pour une petite erreur de commentaire précédent: le problème a été en "shared" et PAS avec "threads" option. Donc, il a compilé aussi sans "--disable-threads" spécifié.
Concernant les discussions, vous pouvez également construire GCC avec
--enable-libgomp
(OpenMP) si vous avez la pthreads-win32 installé la librairie.OriginalL'auteur F'x
Y sont précompilés de la croix-compilateurs de MinGW-w64 disponibles.
Cela permet de compiler en natif 32 - et 64-bits binaires pour Windows à partir de Linux, à deux minutes de tutoriel est disponible à http://www.blogcompiler.com/2010/07/11/compile-for-windows-on-linux/
Juste au cas où vous ne voulez pas passer beaucoup de temps à essayer de construire vous-même.
OriginalL'auteur mitchy
Je grepped par le biais de la MinGW sources, et a constaté que dllcrt2.o est quelque chose de construit au large de la mingwrt paquet. Je suppose que vous avez de le compiler et de l'installer, pas de simplement copier les en-têtes?
Hmmm... n'ai pas joué avec MinGW moi-même. Mais quand j'ai mis en place une première étape cross-compilateur, j'utilise "--sans en-têtes" sur la ligne de configuration de lui dire de ne pas compter sur n'importe quel type de bibliothèque C ou de l'exécution de la cible. Je ne sais pas qui comment à vous de suivre ou comment les choses fonctionnent avec MinGW, mais peut-être vous donner un coup de feu.
OriginalL'auteur DevSolar