DirectX 11 Effects11.lib Ошибка компоновщика Effects11d.lib

0

Итак, я изучаю DirectX 11 и пробовал код BoxDemo от Фрэнка Д. Луны Введение в Direct3D. Но я получаю следующую ошибку Linker:

Effects11.lib(EffectAPI.obj): ошибка LNK2001: неразрешенный внешний символ D3DCompileFromFile

Я слышал, что мне нужно создать Effects11.lib в режиме выпуска и отладки. И я тоже сосать это тоже. Я сделал это в папке Samples\C++\Effects11 \. Открыл решение в VS2012 и построил его, получив Effects11.lib в Release, а также в режиме Debug. Переименован debug один Effects11d.lib. Поместили обе библиотеки в папку проекта и добавили их в Linker-> Input-> Additional Dependencies. Моя целевая платформа - x64, и мой каталог include в настоящее время также указывает на directx include и lib каталог.

Так в чем моя проблема? Почему Effects11.lib не может быть найден компилятором? Правильно ли я это делаю? Пожалуйста, помогите мне. Заранее спасибо

Edit: Так моя проблема может быть с d3dcompiler.lib. Но я уже добавил d3dcompiler.lib в Linker->. Но при создании Effects11.lib мне тоже нужно добавить d3dcompiler.lib?

  • 0
    Что для ваших «Дополнительных библиотечных каталогов» установлено: «$ (DXSDK_DIR) \ Lib \ x86» или «$ (DXSDK_DIR) \ Lib \ x64»? Если это первое и ваша цель - x64, вы связываетесь с неверными библиотеками.
Теги:
linker
visual-studio-2012
directx-11

2 ответа

0
Лучший ответ

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

0

Проблема не в том, что Effects11.lib не может быть найден. Компилятор говорит вам, что символ из Effects11.lib (в данном случае D3DCompileFromFile) не может быть найден во время ссылки.

Вам необходимо связать библиотеку, содержащую D3DCompileFromFile, которая, как представляется, является D3dcompiler.lib, в соответствии с http://msdn.microsoft.com/en-us/library/windows/desktop/hh446872.aspx.

  • 0
    Нужно ли связывать d3dcompiler.lib при сборке Effects11.lib или при попытке собрать проект? Я уже включил d3dcompiler.lib в компоновщик.
  • 0
    @ user3163223 Вам даже не нужно связываться с D3DCompiler.lib. Просто убедитесь, что вы распространяете D3DCompiler.dll с вашей программой.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню