Линкер: не может открыть файл ‘nafxcwd.lib’

У меня проблема с компиляцией моего проекта через Visual Studio 2013. Я получил эту ошибку компоновщика:

LINK : fatal error LNK1104: cannot open file 'nafxcwd.lib'

Согласно этому страница, Я должен использовать MFC в общей библиотеке. Но я не использую MFC вообще.
Все мои библиотеки и основной проект скомпилированы с использованием Use Standard Windows Libraries Настройки. Эта проблема возникает только тогда, когда я пытаюсь построить проект с помощью набора инструментов Visual Studio 2013, но он успешно построен с помощью набора инструментов Visual Studio 2010.

Постскриптум Проект был перемещен из Visual Studio 6.0 в Visual Studio 2013.

16

Решение

Похоже, что в Microsoft Visual C ++ 6.0 Standard Edition не поддерживается статическая связь с библиотеками MFC, как говорится на странице Microsoft. Но в Visual Studio 2013 вы можете статически связать библиотеки Microsoft. Проверьте эту ссылку https://support.microsoft.com/en-us/kb/243458 чтобы решить вашу проблему.

С сайта Microsoft:

Чтобы изменить настройки проекта MFC для динамической связи с библиотеками MFC, выполните следующие действия:
Откройте свой проект MFC.

  1. В меню «Проект» выберите «Настройки».
  2. В поле «Настройки для» выберите «Все конфигурации». Нажмите на
    Вкладка «Общие» Если он не виден, используйте кнопки прокрутки вкладок, чтобы
    прокрутите влево.
  3. В поле со списком Microsoft Foundation Classes выберите Использовать MFC в
    Общая DLL. Нажмите кнопку ОК, чтобы сохранить изменения.
3

Другие решения

Проходя обновление проекта VS 2008, который вообще не использовал MFC, я столкнулся с той же проблемой и исправил ее, выполнив эти три шага. Пожалуйста, посмотрите на снимок, чтобы взглянуть на свойства проекта (VS 2008) выделены.

введите описание изображения здесь

Шаг 1

Пожалуйста, добавьте эту строку #define _AFXDLL в ваш файл stdafx.h

#define WIN32_LEAN_AND_MEAN     // Exclude rarely-used stuff from Windows headers

#define _AFXDLL

Шаг 2

Перейдите к своему решению VS 2013 и откройте «Свойства проекта -> C / C ++ -> Генерация кода -> Библиотека времени выполнения» и измените значение на Многопоточная отладочная DLL (/ MDd) (настройте конфигурацию релиза на Многопоточная DLL (/ MD), как только вы выполните эти два шага, вы начнете получать эту ошибку связывания

ошибка LNK1104: не удается открыть файл ‘mfc120d.lib’

Теперь здесь вы должны установить «Набор символов» для вашего проекта на Unicode вместо _MBCS

Шаг 3

Теперь откройте «Свойства проекта -> Общие -> Проект по умолчанию -> Набор символов» и измените значение на Используйте набор символов Unicode, теперь эта часть требует немного больше терпения и работы, вы должны изменить свои строковые черты на wchar_t или TCHAR в ваших исходных файлах.

Надеюсь, это решит вашу проблему.

0

У меня была та же проблема за исключением того, что она была скомпилирована на одной машине, но не на другой. Решено путем установки многобайтовой библиотеки MFC для Visual Studio 2013, как предлагается в: Ошибка MBCS при создании проекта MFC C ++ с помощью Visual Studio

0

Чтобы изолировать виновника, который потребляет MFC, свяжите с / VERBOSE и найдите выходной файл nafxcwd. Скорее всего, он появится после директивы / DEFAULTLIB — просто обратите внимание, какая библиотека была загружена точно перед директивой.

-1
По вопросам рекламы [email protected]