Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 错误LNK2019:未解析的外部符号“uuu imp”SHCreateItemFromParsingName在函数中引用”;枚举nfdresult“u t”cdecl SetDefaultPath“;_Rust_Sdl 2_Msvcrt - Fatal编程技术网

Rust 错误LNK2019:未解析的外部符号“uuu imp”SHCreateItemFromParsingName在函数中引用”;枚举nfdresult“u t”cdecl SetDefaultPath“;

Rust 错误LNK2019:未解析的外部符号“uuu imp”SHCreateItemFromParsingName在函数中引用”;枚举nfdresult“u t”cdecl SetDefaultPath“;,rust,sdl-2,msvcrt,Rust,Sdl 2,Msvcrt,在我的Windows 10计算机上构建的演示出现问题 我知道其他人已经能够在Windows10上运行演示,所以这是可能的。然而,我遇到了一个很难解决的问题 我克隆了repo,并注释掉了对jemalloc(不针对Win10)的单个引用 为了设置SDL2,我遵循了Rust SDL2自述文件标题下的说明 要运行演示,在切换到demo/native目录后,我通过powershell使用以下命令: $env:RUSTFLAGS+=“-C目标cpu=native” cargo run——发布 如果我没有.m

在我的Windows 10计算机上构建的演示出现问题

我知道其他人已经能够在Windows10上运行演示,所以这是可能的。然而,我遇到了一个很难解决的问题

我克隆了repo,并注释掉了对
jemalloc
(不针对Win10)的单个引用

为了设置SDL2,我遵循了Rust SDL2自述文件标题下的说明

要运行演示,在切换到
demo/native
目录后,我通过powershell使用以下命令:

$env:RUSTFLAGS+=“-C目标cpu=native”

cargo run——发布

如果我没有.multirust/toolschains/stable-x86_64-pc-windows-msvc/lib/rustlib/x86_64-pc-windows-msvc下的SDL2 lib文件,那么我会收到一个错误,抱怨找不到*.lib文件:

致命错误LNK1181:无法打开输入文件“SDL2.lib”

将*.lib文件放入该文件夹可修复此问题

如果我将SDL2.dll文件放在主pathfinder文件夹中,则会出现以下错误:

错误LNK2019:函数“enum nfdresult\u t\uu cdecl SetDefaultPath(struct IFileDialog*,char const*)中引用了未解析的外部符号\uuu imp\u SHCreateItemFromParsingName”

如果我把SDL2.dll放在
demo/native
文件夹中,我会得到与上面相同的错误

我尝试过使用VS2015和VS2017的开发者命令提示,但没有成功。特别是,当尝试使用这些提示进行构建时,我无法使用建议的
RUSTFLAGS
,因此我省略了它们


我也尝试过使用GitBash,但出现了标题中提到的相同错误。下一步我可以试试什么?

可能是@KenWhite的副本谢谢链接。我看了一遍,我认为这个答案是相关的:---但是,我仍然要尝试应用它的修复,所以让我试试看它是否有效。仅供参考,这个问题与SDL2.dll无关。问题出在缺少的.lib文件中。DLL是在运行时使用的,在编译/链接时不会导致LNK错误。@KenWhite根据答案的建议,我查找了导致问题的函数,MSDN中没有前缀
\uu imp\
。但是,正如答案所示,doc页面没有提及任何可能缺失的库?您可以在函数的MSDN文档中找到库信息。它位于Shell32.dll中,这意味着您需要Shell32的导入库。感谢链接,可能存在@KenWhite的副本。我看了一遍,我认为这个答案是相关的:---但是,我仍然要尝试应用它的修复,所以让我试试看它是否有效。仅供参考,这个问题与SDL2.dll无关。问题出在缺少的.lib文件中。DLL是在运行时使用的,在编译/链接时不会导致LNK错误。@KenWhite根据答案的建议,我查找了导致问题的函数,MSDN中没有前缀
\uu imp\
。但是,正如答案所示,doc页面没有提及任何可能缺失的库?您可以在函数的MSDN文档中找到库信息。它位于Shell32.dll中,这意味着您需要Shell32的导入库。