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é?
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
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? –
juste le fichier. Je suppose qu'il me manque le SP1, qui est en train de télécharger. – bastibe