2010-03-30 7 views
2

Voici un programme C très simple:programme très simple C ne compilera pas avec VC 64

#include <stdio.h> 

int main (int argc, char *argv[]) { 

    printf("sizeof(short) = %d\n",(int)sizeof(short)); 
    printf("sizeof(int) = %d\n",(int)sizeof(int)); 
    printf("sizeof(long) = %d\n",(int)sizeof(long)); 
    printf("sizeof(long long) = %d\n",(int)sizeof(long long)); 
    printf("sizeof(float) = %d\n",(int)sizeof(float)); 
    printf("sizeof(double) = %d\n",(int)sizeof(double)); 

    return 0; 
} 

Bien qu'il compile bien sur Win32 (ligne de commande: cl main.c), il n'a pas l'aide du compilateur Win64 ("c:\Program Files(x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\cl.exe" main.c). Plus précisément, il saisit "erreur LNK2019: symbole externe non résolu printf référencé dans la fonction principale". Pour autant que je comprends cela, il ne peut pas lier printf, non?

De toute évidence, j'ai Microsoft Visual C++ Compiler 2008 (Standard enu) x86 et x64 installé et j'utilise la version 64 bits de Windows (7).

Quel est le problème ici?

MISE À JOUR:
OK, maintenant je couru vcvarsall.bat amd64. Il est écrit "Le type de configuration spécifié est manquant, les outils pour cette configuration pourraient ne pas être installés.". Comme mentionné, le compilateur est clairement installé?

Répondre

1

Si vous regardez vcvarsall.bat il imprimera la instruction manquante de configuration spécifiée si certains fichiers batch sont manquants.

Pour l'option amd64 ce fichier doit exister:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat 
+0

ce n'est pas là. Avez-vous une idée de ce qui ne va pas avec mon installation? (Je ne l'ai pas manipulé ou quelque chose) – bastibe

+0

Est-ce que le fichier est manquant ou tout le répertoire? Le répertoire "bin \ amd64" est le compilateur 64 bits (cl.exe est une application 64 bits). Le bin \ x86_amd64 est le compilateur croisé 64 bits (cl.exe est une application 32 bits). Peut-être que vous avez seulement la version 32 bits du compilateur 64 bits installé? Si vous essayez "vcvarsdll x86_amd64" ça marche? –

+0

juste le fichier. Je suppose qu'il me manque le SP1, qui est en train de télécharger. – bastibe

0

Êtes-vous sur un système 32 bits ou 64 bits? Je devine à partir du chemin que les bibliothèques standard 64 bits ne sont pas disponibles, du moins pas dans ce répertoire.

+0

Je mis à jour le poste en conséquence. Je suis sur Windows 7 x64 – bastibe

2

Il y a un problème avec votre configuration. Il compile & lien bien pour moi.

D:> cl test.cpp Microsoft (R) C/C++ Optimisation du compilateur Version 15.00.30729.01 pour x64 Copyright (C) Microsoft Corporation. Tous droits réservés .

test.cpp Microsoft (R) incrémental Version du lieur 9.00.30729.01 Copyright (C) Microsoft Corporation. Tous droits réservés .

test.obj /out:test.exe

D:>

Avez-vous rencontré vcvarsall.bat avec les bonnes options pour configurer les variables d'environnement avant d'essayer en cours d'exécution cl.exe? Quelque chose le long de la ligne de

"C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ vcvarsall.bat" x86_amd64

+0

Non. Will do ... – bastibe

Questions connexes