ошибка LNK2019: неразрешенный внешний символ __imp_SHCreateItemFromParsingName, указанный в функции "enum nfdresult_t __cdecl SetDefaultPath" - PullRequest
0 голосов
/ 21 марта 2019

У меня возникла проблема при создании демонстрации Pathfinder 3 на моей машине с Windows 10.

Я знаю, что кто-то еще смог запустить демо на Windows 10, поэтомувозможно.Однако я сталкиваюсь с проблемой, которую трудно устранить.

Я клонировал репозиторий и прокомментировал единственную ссылку на jemalloc (которая не предназначена для Win10).

Чтобы настроить SDL2, я следовал инструкциям в заголовке Windows (MSVC) файла Readme Rust SDL2.

Для запуска демонстрации я использую следующие команды через powershell, после перехода в каталог demo/native:

$env:RUSTFLAGS += "-C target-cpu=native"

cargo run --release

Если у меня нет библиотек SDL2 в формате .multirust/toolchains/stable-x86_64-pc-windows-msvc/lib/rustlib/x86_64-pc-windows-msvc, я получаю сообщение об ошибке, в котором не найдены * .lib файлы:

фатальная ошибка LNK1181: невозможно открыть входной файл 'SDL2.lib '

Помещение файлов * .lib в эту папку устраняет эту проблему.

Если я помещаю файл SDL2.dll в основную папку Pathfinder, я получаю сообщение об ошибке:

ошибка LNK2019: неразрешенный внешний символ __imp_SHCreateItemFromParsingName, на который ссылается функция "enum nfdresult_t __cdecl SetDefaultPath (struct IFileDialog *, char const *)"

* 10392 If Iв папке demo/native я получаю ту же ошибку, что и выше.

Я пытался использовать командные строки разработчика VS2015 и VS2017, но безуспешно.В частности, при попытке построить с использованием этих подсказок я не могу использовать предложенный RUSTFLAGS, поэтому я их опускаю.

Я также пытался использовать git bash, но возникает та же ошибка, что и в названии.Что я могу попробовать дальше?

...