2016-07-25 1 views
0

Это очень специфическая проблема, я прошу прощения за это.Модернизирован, чтобы выиграть 10, а затем мой проект Direct3D11 не будет связываться

Я создаю графическое приложение реального времени с использованием Direct3D 11. Я запустил его на ОС Win7. Затем я обновился до версии Win10, и когда я снова попытался скомпилировать решение, компоновщик, подобный этому, поймал чуму для кремниевых микрочипов.

Он извергает неразрешенные символы в объектах, которые даже не используют данные функции.

  • __imp__wassert
  • STRLEN
  • ФАБС
  • __imp__CrtDbgReportW
  • ЭПТС
  • и больше

я пришел к выводу, что большинство функций, о которых идет речь в основном функции C , Я знаю, что c-функции больше не включены в заголовки и библиотеки C++, поэтому я обязательно включил все соответствующие C-библиотеки в явном виде.

Я читал и следил за решениями большинства других людей, у которых проблемы с Windows 10 завинчивались. один из них таков: Upgraded to Windows 10 and now WAMP won't work

Я также попытался на самом деле сообщить компоновщику, где искать -lib-файлы, если компилятор или проект пропустили заметку.

На моем компьютере, место для Direct3D LIBS здесь: C: \ Program Files (x86) \ Windows Kits \ 10 \ Lib \ 10.0.10586.0 \ ит \ arm64

Как вы можете видеть, я я пытаюсь заставить его использовать версии Win10 lib в случае, если это требование.

Я начал в одном конце, чтобы попытаться поймать себя делать что-то глупое:

  • Я искал полный включать пути, чтобы увидеть это началось лавина: FAILED
  • Я попытался удалить/ZI компилятор опция: FAILED
  • перекомпоновки с DirectX LIBS для всех различных версий одного в то время: FAILED
  • Явным включают vcrumtime.lib к дополнительной линкерной LIBS: SUCCESS (удалена половине ошибки)
  • создать совершенно новый проект и включают в себя все с нуля: FAILED
  • Добавить MSVCRTD.lib: FAILED
  • Изменение целевой платформы на 64 бита: FAILED
  • Пробовал включая stdio.h в некоторых классах независим инструмента: FAILED
  • Пробовал включая winmm.lib в линкера: FAILED

Я бродила в Интернете для того, что чувствует, как десять лет (только месяц IRL), чтобы найти какое-нибудь решение, но ничего.

Я надеюсь, что у некоторых из вас есть представление о том, что я мог совершить.

Все предложения помогут.

+0

Конкретные вопросы _great_! К сожалению, на самом деле это не один из них. Время для [MCVE] ... –

+0

'__imp__wassert' Вы компилируете для Unicode? '__imp__CrtDbgReportW' Это сборка' _DEBUG'? 'um \ arm64' Является ли ваша целевая платформа ARM64? 'include vcrumtime.lib' Вы связываете« CRT »статически или динамически ('/MT [d] 'или'/MD [d] ')? «Я читал и следил за решениями большинства других людей, у которых были проблемы». Честно говоря, я думаю, что вы усугубили ситуацию, беспорядочно пробуя случайные вещи. Лучше попробуйте откинуть все * ваши попытки «исправления», а затем отправить то, что было * оригинальной * проблемой, - с полной информацией. – dxiv

ответ

1

Скорее всего, вы связываетесь со статической библиотекой, которая несовместима с VS 2015, потому что она использует Universal CRT. Например, устаревшая библиотека DirectX SDK DXERR.LIB не связывается при использовании VS 2015. Убедитесь, что вы перестроили весь свой код с помощью VS 2015 и избегаете использования статических библиотек для других версий Visual C++.

Вы также не сможете подключить и запустить проект на компьютере x86 или x64, связанном с 64-разрядными библиотеками ARM.

Вам не нужно использовать Windows 10 SDK для настольных приложений Win32, хотя вы, безусловно, можете.

+0

Спасибо большое! Вы можете сказать, что я полный новичок, когда дело доходит до наборов инструкций и архитектуры уровня земли на чипах. Я снова вернул процедуру импорта всех файлов в новый проект Windows Win32, и это устранило большинство моих проблем. Затем я перестраиваю проект в соответствии с моими требованиями, но в конечном итоге ваш ответ очень помог мне! Что было частью проблемы, так это то, что я попытался рассказать компоновщику, где найти библиотеки. Я удалил это (установил его для наследования ..), а VS сделал все остальное. – Silverback

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