begin process at 2012 05 29 12:08:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Autre

 > 

GCC 4 sous Windows


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

GCC 4 sous Windows

samedi 30 janvier 2010 à 01:50:20 | GCC 4 sous Windows

victorcoasne

Membre Club

Bonjour,

J'utilise GCC 3.4.x depuis un moment et je suis dit : pourquoi pas passer à la version 4 ?

J'ai donc téléchargé la version 4.5 en 32 et 64 bits (tant qu'à faire).

J'arrive bien à compiler seulement j'ai des warning de ce type pour un hello world :
Code :
 warning: auto-importing has been activated without --enable-auto-import specified on the command line.
Info: resolving std::cout  by linking to __imp___ZSt4cout (auto-import)
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.


De plus il me demande des DLL pour lancer un hello world.
Je les ai mais ce n'est pas le problème, avec GCC 3.4.x un hello world ne demande pas de DLL.

Comment faire pour éviter le warning et pour ne pas avoir recours aux DLLs ?

Merci et bonne prog,
@++

Victor
samedi 30 janvier 2010 à 19:49:49 | Re : GCC 4 sous Windows

mogwai93

La version 4.5 est toujours en cours de dév
donc peut-être un bug/régression

essaye avec la v4.4.3
samedi 30 janvier 2010 à 21:13:40 | Re : GCC 4 sous Windows

victorcoasne

Membre Club
Bonjour,

Non apparemment le problème est récurent à tous les GCC 4.x, ils demandent des DLL pour les librairies standard C++.

Merci et bonne prog,
@++

Victor
samedi 30 janvier 2010 à 23:07:28 | Re : GCC 4 sous Windows

victorcoasne

Membre Club

Bonjour,

Je viens d'essayer avec GCC 4.4.1 mais il me demande toujours libgcc_s_sjlj-1.dll

C'est une DLL de moins qu'avec GCC 4.5 mais c'est déjà une de trop.

Merci et bonne prog,
@++

Victor
samedi 30 janvier 2010 à 23:11:30 | Re : GCC 4 sous Windows

victorcoasne

Membre Club
Réponse acceptée !

Re,

Désolé pour le multi-post mais je ne peux pas éditer mes messages.

Voici donc la solution pour GCC 4.4.1 pour les DLL :
Code :
-static-libgcc


Mais cela ne fonctionne pas sur la version 4.5 sur la version que je teste.

Merci et bonne prog,
@++

Victor
lundi 1 février 2010 à 10:18:44 | Re : GCC 4 sous Windows

CptPingu

Administrateur CodeS-SourceS
Merci pour cette solution, je la garde de côté au cas où.

A noter que pour l'instant gcc3 semble encore utilisé (ne serait-ce que par QT: http://doc.trolltech.com/4.6/compiler-notes.html)

_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
lundi 1 février 2010 à 12:52:03 | Re : GCC 4 sous Windows

victorcoasne

Membre Club
Bonjour,

C'est normal que GCC 3 reste utilisé, il ne pond pas des executables à 4Mo pour un hello world avec des try catch.

Le pire c'est que je ne suis même pas arrivé à utiliser UPX.

Pour ceux que ça intéresse voici le code hello world :
Code C/C++ :
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    try
    {
        cout << "Hello";
        throw 0;
    }
    catch(...)
    {
        cout << " world !" << endl;
    }
    system("pause");
}


Ligne de commande de compilation utilisé avec GCC 4.4.1 :
Code :
"32\bin\g++.exe" "hello world.cpp" -mthreads -static-libgcc -ohelloworld32.exe

Code :
"64\bin\g++.exe" "hello world.cpp" -mthreads -static-libgcc -ohelloworld64.exe

Taille des executables Windows :
- 32 bits : 3 722 ko
- 64 bits : 4 479 ko

J'ai voulu passer à GCC 4 pour deux raisons :
- Pas besoin d'une DLL pour les exceptions multi-thread
- Support du 64 bits

En attendant que GCC 4 sache faire des executables de taille correcte je reste à GCC 3.4.5 pour compiler des programmes 32 bits.

Merci et bonne prog,
@++

Victor
lundi 1 février 2010 à 14:15:59 | Re : GCC 4 sous Windows

CptPingu

Administrateur CodeS-SourceS
Est-ce une spécificité Windows ? Je n'ai pas fait la comparaison entre gcc3 et gcc4 sous Unix, mais ton exemple compilé avec g++4.4.1 en 32bits, done:


> g++ hello.cc -static
> ls
1,2M a.out*


Sans le static, on descend même à:


> g++ hello.cc
> ls
9,1K a.out*



Avec le multithreading activé:


> g++ hello.cc -static -pthread
> ls
1,3M a.out*


Sans le static, même taille (logique):


> g++ hello.cc -pthread
> ls
9,1K a.out*



Pour le morceau de code:
- Pas besoin de system pause. Il y a une manière plus portable de le faire.
- return 0; /* Certe pas obligatoire d'après les spécifications du C++, mais bon c'est un peu moche */
- Evite les using namespace. Voir: [ Lien ]

_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
lundi 1 février 2010 à 17:15:58 | Re : GCC 4 sous Windows

victorcoasne

Membre Club

Bonjour,

> Pas besoin de system pause.
Si dans mon cas c'est pour vérifier avec le gestionnaire des tâches que le programme est 32 bits ou 64 bits
> Il y a une manière plus portable de le faire.
Je voulais pas m'embêter à faire des fonctions qui affiche un texte et attend une saisie d'une touche quelqu'elle soit. C'est la manière la plus rapide sous Windows.
> Evite les using namespace.
Ne t'inquiète pas je les utilises à bon escient, mais là c'est un hello world vite fait.

Sans le static avec GCC 4.4.1 :
- 32 bits : 3 704 ko
- 64 bits : 4 481 ko

Sous gcc 4.5 sans le static (avec les avertissements cités plus haut) :
- 32 bits : 42 ko
- 64 bits : 46 ko
Avec static mais avec une dépendance persistante aux DLL :
- 32 bits : 64 ko
- 64 bits : 72 ko
Pour info les DLL de dépendances font respectivement pour GCC 4.5 :
- 32 bits :
- libgcc_s_sjlj-1.dll : 419 ko
- libstdc++-6.dll : 4,95 Mo
- 64 bits :
- libgcc_s_sjlj-1.dll : 486 ko
- libstdc++-6.dll : 5,89 Mo

Essaye en 64 bits de compiler pour voir si ça augmente de beaucoup.

Merci et bonne prog,
@++

Victor
lundi 1 février 2010 à 18:30:00 | Re : GCC 4 sous Windows

CptPingu

Administrateur CodeS-SourceS


> g++ hello.cc -m64
> ls
15K a.out*



> g++ hello.cc -m64 -pthread
> ls
15K a.out*



> g++ hello.cc -m64 -static
> ls
1,4M a.out*



> g++ hello.cc -m64 -pthread -static
> ls
1,4M a.out*



g++ --version



g++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio


Cette discussion est classée dans : gcc, auto, warning, hello, world


Répondre à ce message

Sujets en rapport avec ce message

Probleme de programmation C++ [ par zlitus ] Salut, je ne sait pas programmer en c++ et déssidé d'apprendre.Pour cela j'ai téléchargerDEV-C++ et j'ai essayé de marquer "hello world" avec.Je copi Regex ! [ par Hades53 ] Bonjour,j'aimerais faire une fonction en c++ qui permettra de retourner N, le nombre de string dans le texte qui correspondent à l'expression régulièr HELLO WORLD DEBUTANT [ par sam469 ] Bonsoir a tous,je voudrait apprendre le c++,mais pour commencer je voudrais faire un programme qui m'affiche dans un label un text via un CommandButto débutant aimerais pouvoir coder [ par Leko ] Bonjour,je viens d'installer DEV C++ et j'ai ecrit le code le plus basique qui soit, mais il y a un souci qui vient peut etre de la configuration de c refresh() de ncurses [ par AsM0DeUz ] Bonjour !Je viens  suis en train de tenter d'utiliser ncurses seulement j'ai deja ma premiere question ... a quoi sert refresh().D'apres le how to (ht makefile [ par alexandre0094 ] Bonjour, Je suit en train de tester la programation sur psp j'ai donc suivi un tutorial et installer cygwin et créé deux fichier l'un est le code sour [OpenCV 1.0] cvLoadImage, ne fonctionne pas [ par thenemesys ] Bonjour, Je commence à apprendre OpenCV, toutefois, je rencontre déjà un problème lors de l'exécution d'un code très simple. En effet, lorsque je veu programmation [ par steve25cent ] j'installe l'environnement CDT(c/c++) sous Eclipse. afin de compiler mon programme il faut installer un compilateur externe que j'ai fait: (http://www fonction clock() de time.h sur Linux GCC [ par desesperado88 ] Bonjour tout le monde.J'utlise FEDORA16 et le compilateur gcc. [b]#include #include #include int main( int argc,char * argv[]) { getchar(); prin Le nouveau GCC et le problème avec iostream.h [ par zaim khelifi ] Bonjour à tous; Dernièrement, avec le nouveau compilateur GCC 4.3, lorsqu’on compile :[code=cpp] #include int main() { cout<<"Hello Monde\n"; } [/cod


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales