Makefile на Win 64
Я работаю над Windows 64, и нам нужен make-файл для нашего проекта. У нас есть существующий make-файл для Win 32, и мы не знаем, как установить 64-битную среду из файла make.
Если кто-то сделал это или у вас есть примерный сборочный файл Win 64, пожалуйста, поделитесь со мной. Мы получаем следующую ошибку
c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(17) : error C2371: 'size_t' : redefinition; d
ifferent basic types
predefined C++ types (compiler internal)(19) : see declaration of 'size_t'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h(81) : fatal error C1189: #error : "No Target Architecture"
make[3]: *** [shared/anonObject.o] Error 2
что в основном происходит, когда в VS x64 битовая конфигурация не установлена.
2 ответа
Я установил 64-битную среду в командной строке, затем запустил make-файл с параметром /MACHINE:X64.
Эта ошибка (без целевой архитектуры) выдается препроцессором, если ни _AMD64_
ни _IA64_
определены, что, я полагаю, либо намекает на неправильную установку целевой архитектуры (должно быть сделано /MACHINE:X64
в cl
), или вы работаете с действительно экзотическим...
Я не знаю ни о каких других особенностях, касающихся 64-битной компиляции, за исключением, конечно, вам нужно запустить 64-битную версию cl
(тот, в VC\bin\amd64
).
В связи с этим, также не забудьте связать, используя 64-битные библиотеки вместо 32-битных. Они могут быть найдены в их соответствующих lib\x64
(Windows SDK) и lib\amd64
(Visual Studio) папки.
Дело в том, что size_t
уже определен, возможно, можно исправить с помощью
#define _SIZE_T_DEFINED
перед включением sourceannotations.h
, Вы определяете size_t
самостоятельно? Это сделано в windows.h
, который должен определить выше, автоматически.