Compiler du C++

Fermé
legofou Messages postés 54 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 29 janvier 2009 - 14 févr. 2008 à 06:49
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 - 16 févr. 2008 à 14:01
Bonjour,

Je suis encore un "beginner" en C++ et j'aimerai pouvoir lancer un fichier. J'ai installe Visual Basic C++ 2008 et je n'arrice pas un compiler mon fichier.. Comment on fait pour le compiler et pour que ca marche?

merci pour toute aide
A voir également:

9 réponses

Emeric84 Messages postés 30 Date d'inscription vendredi 28 décembre 2007 Statut Membre Dernière intervention 24 avril 2008 8
15 févr. 2008 à 19:40
Tout dépende de ton fichier, s'il est écrit pour se compiler tout seul, ou bien s'il a besoin de bibliothèques...

Dans tous les cas dans Visual, il faut créer un projet vierge, dans lequel tu vas ajouter ton code source pour être compilé.

Un fichier seul ne peut pas être compilé sous windows. Sous linux, tu pourrais faire :
g++ -c monprogramme.cpp -o programme
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
15 févr. 2008 à 21:26
Bonjour,

En fait il faut créer un projet avant tout, il y a plusieurs type, un projet de type console est surement suffisant. En toute logique il créera aussi une solution qui pour l'instant n'aura que ton nouveau projet. Il y a des chance qu'il y ait aussi un fichier avec le main dedans, tu le retire du projet et tu ajoutes le tien ou tu copies dans ce fichier.

Prends bien garde aussi à bien choisir un projet C++ et donc avec Visual C++. (Tu ouvres Visual Studio qui te mettra de manière invisible dans Visual Basic ou Visual C++ selon le projet que tu crées)

M.


PS:
Sinon sous Windows tu peux compiler avec
cl /c monprogramme.cpp
Mais à moins d'avoir de gros soucis on ne le fait pas ^^
0
legofou Messages postés 54 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 29 janvier 2009 2
16 févr. 2008 à 08:57
Bonjour,

Merci pour ces informations qui on marche quand je lance mon programme avec CMD. Mais si je veux que le programme est sa propre fenetre Visual Basic me montre :
1>------ Build started: Project: NoCmd, Configuration: Debug Win32 ------
1>Compiling...
1>Hello.cpp
1>Linking...
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
1>C:\Users\Legofou\Documents\Visual Studio 2008\Projects\NoCmd\Debug\NoCmd.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Users\Legofou\Documents\Visual Studio 2008\Projects\NoCmd\NoCmd\Debug\BuildLog.htm"
1>NoCmd - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Que ce que j'ai fait de faux?

Mon programme:

#include <iostream>
using namespace std;

int main ()
{
cout <<"Hello World!";
cout <<"I'm a C++ Program";
return 0;
}
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
16 févr. 2008 à 10:22
Bonjour,

Oui, c'est en effet peu évident...

En fait je pense que tu as choisi un projet de type (*ouvre son visual pour ne pas dire de c....*) "Win 32 -> Win 32 project" à la création. Il t'a normalement mis un gros bout de code qui commence déjà à ouvrir une fenêtre etc.. (Et comme tout le monde tu l'as dégagé ^^)
Or ce type de projet s'attend à obtenir un point d'entrée du style :
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR    lpCmdLine, int       nCmdShow)

au lieu de
int main( int argc, char *argv[] )
// ou 
int main()

Cela sert pour les applications graphiques ou simplement à obtenir un hInstance pour s'identifier auprès de librairies externes (Comme DirectX)

Tu peux modifier le type de ton projet dans les propriétés du projet dans Linker -> System -> Subsystem : il faut le mettre en mode Console.
(Pense à le faire aussi pour le mode Release)

Au choix, tu peux aussi changer le prototype de ta fonction main pour celui ci-dessus si tu as besoin d'un hInstance.


Windows est fourbe hein ?

M.


Tant que tu y es, retire donc les "Precompiled headers" dans C/C++ -> Precompiled headers.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
legofou Messages postés 54 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 29 janvier 2009 2
16 févr. 2008 à 12:20
ah.. ok, mais c'est dans quel menu pour modifier le type de projet?
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
16 févr. 2008 à 12:36
Si tu ne l'as pas fermé tu as sur le côté gauche la solution, les projets et leur fichiers, tu peux avoir les propriétés de chacun en faisant un clique droit dessus. (Donc ici, le projet)

Si tu n'as pas cette fenêtre tu peux regarder si elle n'est pas dans les onglets qui sont bas à gauche de cette fenêtre. (Possible aussi que la fenêtre soit juste réduite, les onglets sont peut-être mis verticalement et plus haut, la fenêtre ressort en tapant sur le bord de l'écran)

Sinon, tu peux la rouvrir dans le menu View de la barre du haut -> Solution Explorer (Ctrl + Alt + L)
Moi je suis fan du Solution Explorer, il y en a qui préfère le Class View...

On peut aussi accéder au propriétés du projet actif dans la barre du haut: Project -> <Nom du projet> properties.


M.


PS:
J'ai croisé une version plus ancienne ou cela s'appeler File View aussi.


PS:
Whoops c'est peut-être juste moi qui le met systématiquement à gauche, sur ce screenshot il est à droite...
0
legofou Messages postés 54 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 29 janvier 2009 2
16 févr. 2008 à 13:29
ok, merci bien,

J'ai une autre questoin; je viens de regarder des video utilisant Visual C++ 08 et eux, a sur et a mesure qu'il ecrive leur code, une petite fenetre aparait en dessous de la souris avec toutes les possibilite, mais moi je ne l'ai pas; est ce que c'eat normal?
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
16 févr. 2008 à 13:54
Je suis encore sous Visual 2003 et je l'ai, par contre, il se peut que Intellisense (c'est le nom de l'outil d'autocomplétion de Visual) merde de temps à autre, notamment quand il y a une erreur avant dans le code... Et des fois aussi il merde grave et il faut supprimer le fichier .ncb qui traîne dans le répertoire du projet ou de la solution. Mais j'ai assez rarement de problème avec et il parait qu'il en a encore moins dans les versions plus récentes.

Tu peux normalement essayer de forcer son apparition avec Ctrl+Espace.
Par exemple après un "std::" ou "monObjet." et même (mais là il faut forcer justement) "monOb"
Il est sensé être automatique après "::", "." et "->"

Il devrait être actif par défaut mais tu peux toujours aller vérifier dans Tools -> Options -> Text Editor -> <Ton langage> -> General, Il devrait y avoir une option Statement completion si ton langage le permet. (En tout cas c'est là dans Visual 2003)

Et il y a une option plus globale dans Tools -> Options -> Text Editor -> All Language -> General. Tu peux toujours vérifier à ces deux endroits et tester le Ctrl + espace.

M.
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
16 févr. 2008 à 14:01
Tu peux aussi voir si Intellisense est en vie en tapant

"int i." et Ctrl+Espace, tout en bas dans la barre il devrait dire que i n'est pas une structure...

M.
0