У меня проблема с компиляцией моего проекта через 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.
Похоже, что в Microsoft Visual C ++ 6.0 Standard Edition не поддерживается статическая связь с библиотеками MFC, как говорится на странице Microsoft. Но в Visual Studio 2013 вы можете статически связать библиотеки Microsoft. Проверьте эту ссылку https://support.microsoft.com/en-us/kb/243458 чтобы решить вашу проблему.
Чтобы изменить настройки проекта MFC для динамической связи с библиотеками MFC, выполните следующие действия:
Откройте свой проект MFC.
Проходя обновление проекта VS 2008, который вообще не использовал MFC, я столкнулся с той же проблемой и исправил ее, выполнив эти три шага. Пожалуйста, посмотрите на снимок, чтобы взглянуть на свойства проекта (VS 2008) выделены.
Пожалуйста, добавьте эту строку #define _AFXDLL в ваш файл stdafx.h
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define _AFXDLL
Перейдите к своему решению VS 2013 и откройте «Свойства проекта -> C / C ++ -> Генерация кода -> Библиотека времени выполнения» и измените значение на Многопоточная отладочная DLL (/ MDd) (настройте конфигурацию релиза на Многопоточная DLL (/ MD), как только вы выполните эти два шага, вы начнете получать эту ошибку связывания
ошибка LNK1104: не удается открыть файл ‘mfc120d.lib’
Теперь здесь вы должны установить «Набор символов» для вашего проекта на Unicode вместо _MBCS
Теперь откройте «Свойства проекта -> Общие -> Проект по умолчанию -> Набор символов» и измените значение на Используйте набор символов Unicode, теперь эта часть требует немного больше терпения и работы, вы должны изменить свои строковые черты на wchar_t или TCHAR в ваших исходных файлах.
Надеюсь, это решит вашу проблему.
У меня была та же проблема за исключением того, что она была скомпилирована на одной машине, но не на другой. Решено путем установки многобайтовой библиотеки MFC для Visual Studio 2013, как предлагается в: Ошибка MBCS при создании проекта MFC C ++ с помощью Visual Studio
Чтобы изолировать виновника, который потребляет MFC, свяжите с / VERBOSE и найдите выходной файл nafxcwd. Скорее всего, он появится после директивы / DEFAULTLIB — просто обратите внимание, какая библиотека была загружена точно перед директивой.