![]() It is not at all obvious from the rustup installation page that you need, say, the Windows SDK. However, it is generally better to have the newest versions when possible. It doesn't really matter which VC++ toolset version you use, or which Universal CRT version you use, or which Windows SDK version you use as long as you have all three of them. The VS 2017 thing just shines light on what's happening. This is about rustup not detecting VC++ Build Tools (note the title). This discussion is getting a bit derailed. It can however have multiple VC++ toolsets installed and provides a COM api to select one of those toolsets which I am currently working with. There is just the one VS 2017, and both rustc and rustup do not autodetect it currently. How many versions of VS 2017 are there, and which ones work correctly with rustc, which ones don't work correctly with rustc, which ones work with rustup, which don't work with rustup? ![]() Or if rustc delegates responsibility for detecting VC++ to rustup, which would involve the rustup proxies doing the autodetection and setting env vars appropriately before calling the actual binaries. Unless you use vcvars to manually configure your environment, yes. Since rustc doesn't work correctly with some VC 2017's, doesn't that mean that even if rustup fixes its own detection, that rust will still be broken? Before then it was just previews and release candidates. I'm not clear on why this is only a crisis now, when the VC 2017 bug in rustc has existed since 1.īecause VS 2017 only had its actual stable release in March. Libstd imports symbols from advapi32.lib, ws2_32.lib, userenv.lib and shell32.lib which are part of the windows Is there something further you'd like to see changed? Here's a breakdown of why each component is required: I can add a note the installation instructions saying to use the default settings, but anything more detailed, such as exactly which components are required, may be difficult to keep up to date and correct for all versions of the installer, since MS have a tendency to change things up quite a bit! If you remove those components it can't work. The fact is, rust currently requires (and has always required) all three of these components, and the components are installed by default when installing the VC++ build tools. What a horrible getting started experience with Rust on I'm not quite sure what you have in mind, beyond changing the documentation, nor why you consider this particularly troubling? I don't know why? Maybe, VS 2017's installation fixed it? I have tried to reproduce the linker problem by removing all and install again, but it has been disappeared. My linker issue is no longer happen anymore. Therefore, I removed all VS 2017 related programs and re-install Visual C++ 2015 Build Tools with the DEFAULT settings for my Rust HelloWorld program. Rustup still requires VC++ 2015 toolset, Universal CRT SDK & Windows 8.1 SDK to recognize the build tools. Here is the required components to install Visual C++ via Visual Studio for Rust HelloWorld program: Again, I have tested VS 2017 installer by adding more components related to C++ development, also try to strip as much as possible. I have tried to install "Visual Studio 2017 for C++ Desktop Development" as suggested, but it still not work, and rustup doesn't recognize Visual C++ Build Tools. develop a Rust HelloWorld program on Windows is tougher than I expected :( ![]() Another test: #1003 (comment)Īfter that, I encountered this linker issue: rust-lang/rust#30319 It may affect the linker.Įdit: rust requires Windows SDK (8.1 or 10 is ok). Install Visual C++ 2015 Build Tools with the DEFAULT installation will solve this problem □ and remember to re-proceed the installation with rustup-init. ![]() But it seems that the installer's custom mode doesn't behave the same as the DEFAULT installation mode no matter the custom packages which we have chosen. I have tested many custom installation settings of Visual C++ 2015 Build Tools installer. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |