Вот очень простая программа на C:
#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;
}
Хотя он прекрасно компилируется на Win32 (командная строка: cl main.c
), он не использует компилятор Win64 ("c:\Program Files(x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\cl.exe" main.c
). В частности, это говорит об «ошибке LNK2019: неразрешенный внешний символ printf, указанный в функции main». Насколько я понимаю, это не может ссылаться на printf
, верно?
Очевидно, что у меня установлен Microsoft Visual C ++ Compiler 2008 (Standard enu) x86 и x64, и я использую 64-разрядную версию Windows (7).
В чем здесь проблема?
UPDATE:
Хорошо, теперь я побежал vcvarsall.bat amd64
. Он говорит: «Указанный тип конфигурации отсутствует. Инструменты для этой конфигурации могут быть не установлены.». Как уже упоминалось, компилятор явно установлен ??