我刚接触rust,想使用Clion(当前为19.3)调试Rust代码,然后按照this answer将编译器从MSVC切换到GNU,现在,当我运行程序(在debug中)时,来自Clion的错误:
com.jetbrains.cidr.execution.debugger.backend.gdb.GDBDriver$GDBCommandException: Error creating process <Program Path>, (error 50).
尽管无需调试即可正常运行。
[如果我用谷歌搜索错误,我会得到这个issue on github,它基本上说在64位应用程序上使用64位编译器。我添加的编译器是64位的,并且因为我安装了rust的64位版本,所以我假设它输出的程序是64bit ...(尽管我对rust的了解还不足以100%确定)
正在运行rustup show
返回此:
rustup show
Default host: x86_64-pc-windows-msvc
rustup home: C:\Users\User\.rustup
installed toolchains
--------------------
stable-x86_64-pc-windows-gnu (default)
stable-x86_64-pc-windows-msvc
active toolchain
----------------
stable-x86_64-pc-windows-gnu (default)
rustc 1.42.0 (b8cedc004 2020-03-09)
[这就是我正在使用正确的工具链的想法(因为它到处都是x86_64
)。
我哪里出错了?什么配置了小姐?
原来我很笨,让Clion指向32位安装,而不是64位安装。我最终遵循了Jetbrains自己的指南:https://blog.jetbrains.com/clion/2019/10/debugging-rust-code-in-clion/
在Windows上,转到设置|构建,执行,部署|工具链并将Cygwin或MinGW设置为您的工作环境。然后,运行rustup工具链列表并检查第一行:它应该是与调试器的位匹配的gnu版本之一。例如,如果您使用的是MinGW(32位),则默认工具链应为i686-pc-windows-gnu。如果您使用的是MinGW64,则应为x86_64-pc-windows-gnu。您可以通过运行rustup默认值“ toolchain_name”来设置适当的工具链。