rust - rust 链接失败:退出代码1

标签 rust

几天前我问了一个类似的问题,但我注意到这是一个非常模糊的问题。很抱歉。我目前正在尝试运行vukan-rs triangle example,我遵循了说明,但不幸的是,出现了以下错误:

   Compiling rand_jitter v0.1.4
   Compiling time v0.1.42
   Compiling winit v0.19.4
   Compiling vulkano-shaders v0.13.0
   Compiling rand v0.6.5
   Compiling jpeg-decoder v0.1.16
   Compiling cgmath v0.17.0
   Compiling image v0.21.3
   Compiling vulkano-win v0.13.0
error: linking with `C:\msys64\mingw64\bin\x86_64-w64-mingw32-gcc.exe` failed: exit code: 1
.
.
.
collect2.exe: error: ld returned 1 exit status

Here you can find the full error
我注意到它在抱怨海合会。这是我的./cargo/config文件,我在其中指明了路径:
[target.x86_64-pc-windows-gnu]
rustflags=["-Clink-args=-lworkaround_47048"]
linker="C:\\msys64\\mingw64\\bin\\x86_64-w64-mingw32-gcc.exe"
ar="C:\\msys64\\mingw64\bin\\ar.exe"

我正在运行二进制文件:cargo build --target=x86_64-pc-windows-gnu --bin triangle
我做错什么了?提前谢谢。

最佳答案

你的问题是你将C++代码链接到二进制,但是你使用C编译器来链接。当使用C++编译器时,它包括提供标准C++函数的附加库;在使用C编译器时不包含这些库。
你需要使用一个C++编译器,比如x86_64-w64-mingw32-g++.exe,链接一个使用C++的程序,或者你需要调整你的build.rs文件来链接适当的库。也可以为您的目标使用默认的链接器,如果您的依赖项build.rs设置正确,那么它应该做正确的事情。如果你在做一个非公开的项目,前者可能是最简单的解决方案。
此外,您的依赖项中可能缺少__imp___acrt_iob_func的实现;它似乎与this Rust issue有关。

关于rust - rust 链接失败:退出代码1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58636020/

相关文章:

rust - Treasury Module 的 set_pot 函数是否可供公众使用?

rust - 我如何初始化一个数组,以便 Rust 知道它是一个 `String` s 而不是 `str` 的数组?

qt - 无法为 qmlrs 运行自定义构建命令

rust - 如何将 Arrayfire 数组转换为 Rust Vec?

assembly - 如何在 Rust 中调用汇编函数?

templates - C++ for Rust 中特定模板用法的等价物

string - 如何在 Rust 中惯用且高效地解析由字母和数字组成的字符串?

无法将字符串从 Ruby 传递到我的 Rust 函数中

scala - Curl 可以连接到本地主机上的 Iron 服务器,但 Scala 间歇性地不能

rust - 更改Rust打印功能的默认文件描述符