2010-12-08 3 views
0

Я пытаюсь скомпилировать родную программу Visual Studio 2008 C++ в 64 битах на моих 32-битных окнах.Невозможно скомпилировать родную программу на C++ в 64 битах

У меня есть ошибка во время ссылки, потому что версия msvcprtd.lib в 64 бит не найдена.

msvcprt.lib(MSVCP90.dll) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' 

Я установил последнюю версию Microsoft Windows SDK, но я не могу найден файл msvcprtd.lib в каталоге x64.

+0

Зачем вам нужно перекрестно компилировать для отладки, когда вам не разрешается перераспределять отладочные DLL? – 2010-12-08 17:21:37

ответ

0

msvcprtd.lib не отображается в моем последнем SDK в 32 или 64 бит. Однако я вижу его в версии 5.0 SDK, но только для типа платформы IA64.

Возможно, что lib просто не существует. Попробуйте удалить его из списка lib, с которым вы связываетесь, и посмотреть, какие ошибки вы получите тогда, при поиске по этим ошибкам может привести вас к имени библиотеки, которую вы действительно хотите связать.

0

Попробуйте следующее: перейдите в свой проект -> Configuration Manager, а затем создайте диспетчер конфигурации, который определяет платформу x64 как платформу и устанавливает ее как активную.

0

Мой короткий ответ: вы убедились, что у вас установлен крест-корреспондент. Я помню, как сошел с ума, когда пытался скомпилировать 64-битную двоичную информацию на моем 32-битном XP, когда понял, что у меня не установлен кросс-компилятор. (Удобно иметь медиа-медиа для Visual Studio).

Также, как сказал Мадхур, убедитесь, что ваша конфигурация настроена на 64 бит.

1

Эта ошибка, вероятно, связана с отсутствием библиотек, настроенных для ссылки на x64. Это легко осуществить, если вы добавите новую конфигурацию x64 в проект. Самое простое решение - создать новое решение с проектом как для win32, так и для x64, а затем посмотреть в каталогах VC++ Directories/Library в свойствах проекта и убедиться, что те, которые у вас есть в вашем проекте, одинаковы.

Смежные вопросы