фатальная ошибка LNK1112: тип компьютера модуля 'X86' конфликтует с типом машины назначения 'x64' - PullRequest
1 голос
/ 10 января 2012

Я использую Visual Studio 2010 Premium.У меня есть два проекта A и B, и я пытаюсь скомпилировать оба на 64-битную платформу.
Проект A выводит файл .dll и .lib, на который опирается проект B.
Я уже успешно скомпилировал проект A в64-разрядная платформа, но при компиляции проекта BI появляется следующая ошибка:

mfcs100d.lib (nolib.obj): фатальная ошибка LNK1112: тип компьютера модуля 'X86' конфликтует с типом компьютера назначения'x64'

В чем может быть проблема?Я на самом деле не знаю, что это за файл mfcs100d.lib.
Я использовал «Ходок зависимости» для файла DLL проекта А, и, похоже, он полагается исключительно на 64-битные файлы DLL.Кроме того, я зашел в Проект B (Страницы свойств -> Свойства конфигурации -> Компоновщик -> Дополнительно) и подтвердил, что для «Target Machine» установлено значение «MachineX64».Кроме того, в Configuration Manager для платформы установлено значение x64.

Кто-то сообщил мне, что проблема может быть такой:

Переход к проекту B (Страницы свойств -> Свойства конфигурации -> C \C ++ -> Preprocessor -> Preprocessor Definitions) У меня есть следующие значения:

WIN32  
_DEBUG  
_WINDOWS  
_AFXEXT  

Это действительно связано?Должен ли я заменить значение «WIN32»?если так, то как?Я не очень понимаю значение этих определений и как их изменить.

Редактировать: Я только что понял, что, вероятно, это не связано вообще.Это просто определения для препроцессора, например, те, которые могут быть определены командой C ++ #define.И все же я могу ошибаться.

Ответы [ 2 ]

5 голосов
/ 10 января 2012

Довольно сложно ошибиться.Начните с Build + Configuration Manager и дважды проверьте, что x64 выбран для обоих проектов.Следующим шагом является проверка пути поиска библиотеки.Щелкните правой кнопкой мыши проект, свойства, каталоги VC ++, каталоги библиотеки.Нажмите на стрелку комбинированного списка, чтобы просмотреть «Унаследованные значения».$ (VCInstallDir) atlmfc \ lib \ amd64 должен быть вторым в списке, там находится 64-битная версия mfcs100d.lib.

2 голосов
/ 16 августа 2012

Когда вы добавляете цель x64, зайдите в Общие настройки и посмотрите на Выходной каталог и Промежуточный каталог.Для цели Debug измените значение с «Debug» на «Debug64», то же самое для цели Release.

...