微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在Windows上链接hello_world程序:/ usr / bin / link:额外的操作数

我使用Rustup-init.exe在Rust 10上安装了Rust,这是Rust Book推荐的方法。 安装程序告诉我,Rust需要VS2013或更新版本的C运行时。 我安装了VS2017,我认为Rust不支持VS2017,所以同意安装C-runtime。 安装成功完成。

main.rs :

fn main() { println!("Hello,world!"); }

编译:

> rustc main.rs error: linking with `link.exe` Failed: exit code: 1 | = note: "link.exe" "/NOlogo" "/NXCOMPAT" "/LIBPATH:C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib" "main.0.o" "/OUT:main.exe" "/OPT:REF,NOICF" "/DEBUG" "/LIBPATH:C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libstd-0a78323911070f99.rlib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\librand-c279a51d66700350.rlib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libcollections-d7bf31a4ca1ea637.rlib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libstd_unicode-d367c3ba0db49600.rlib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libpanic_unwind-2d4bf02140c11dcb.rlib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libunwind-add7a84d7e82d084.rlib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\liblibc-84688accbc86d6b7.rlib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\liballoc-fe2e68b21f0bdd7a.rlib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\liballoc_system-7fc0381594c93f56.rlib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libcore-ea9d77e7c23fe65c.rlib" "C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libcompiler_builtins-91b619d34dd1f5aa.rlib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "shell32.lib" "msvcrt.lib" = note: /usr/bin/link: extra operand '/LIBPATH:C:\Users\***\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib' Try '/usr/bin/link --help' for more @R_929_4045@ion. error: aborting due to prevIoUs error

link.exe LIBPATH arg被指定了两次。

我无法将颜色转义码打印到terminal

生成文件夹外部的Windows库链接

如何使程序不显示控制台窗口?

如何找出为什么DLL不能在不同的程序中加载?

Path :: new(many-subdirs)对于Linux和Windows都足够好吗?

这是怎么回事?

> rustc --version rustc 1.17.0 (56124baa9 2017-04-24)

Valgrind显示没有分配

如何在离线环境中使用Cargo来build立项目?

我能否以非规范的方式从标准input读取数据?

无法编译Windows 32位上的curl-rust,未定义的对pthread函数的引用

运行时使用Rust构build的DLL需要libgcc.dll吗?

正如锈蚀文件所说:

正如Rust下载页面中提到的那样,Windows上有两个ABI:Visual Studio使用的本机(MSVC)ABI,以及GCC工具链使用的GNU ABI。 你需要哪种版本的Rust,主要取决于你想要与哪些C / C ++库进行互操作:与Visual Studio生成的软件互操作使用Rust的MSVC版本; 与使用MinGW / MSYS2工具链构建的GNU软件进行互操作,使用GNU构建。

您已经安装了MSVC工具链。 但是,您正在命令行中运行编译器,其中link.exe不指向MSVC链接器,而是指向GNU工具链 – MSVC不会调用链接器/usr/bin/link或使用诸如--help选项!

你应该配置你的shell,使得MSVC链接器在PATH中最重要,或者如果你的目标是切换到GNU ABI。

比较两者的帮助输出

$ link --help Usage: link FILE1 FILE2 or: link OPTION Call the link function to create a link named FILE2 to an existing FILE1. --help display this help and exit --version output version @R_929_4045@ion and exit GNU coreutils online help: <http://www.gnu.org/software/coreutils/> Full documentation at: <http://www.gnu.org/software/coreutils/link> or available locally via: info '(coreutils) link invocation'

> link /help Microsoft (R) Incremental Linker Version 14.10.25017.0 copyright (C) Microsoft Corporation. All rights reserved. For help on Linker,type `link /link' or `link' For help on Library Manager,type `link /lib' or `lib' For help on Dumper,type `link /dump' or `dumpbin' For help on Editor,type `link /edit' or `editbin' For help on CvtCIL,type `link /cvtcil'

我以为Rust不支持VS2017呢

支持 VS2017就好了; 如1.17发行说明中所述,问题是由于MSVC安装位置的变化,无法自动查找MSVC安装 。 从具有适当环境的shell中运行Rust编译器可以正常工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐