Update Windows build guide: current NASM, simplified YASM setup, common-error reference - #1851
Open
0xDarkMatter wants to merge 1 commit into
Open
Conversation
Verified the guide end-to-end on a clean Windows 11 + VS2022 Community 17.14 machine (Release|x64 and Release|Win32 both build with 0 errors). Fixes for the issues found along the way: - Recommend a current NASM release instead of 2.08 (2010); NASM 2.16.03 verified against all assembly sources. Fix the Path example for the 64-bit installer location. - Simplify YASM setup: the build only invokes yasm.exe from the Path. Drop the zip/vsyasm download and the YASMPATH system variable, which nothing in the build references. - Add a "Common build errors" section to Known Issues mapping the three errors every default VS2022 install hits (MSB8040 Spectre libs, C1083 atlbase.h, MSB8066 exit 9009) to the components that fix them. - Explain why the Release|Win32 pass is needed (Setup/Portable/COMReg are only built by that configuration). Addresses veracrypt#1488.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #1488. I set up a fresh Windows 11 machine with VS 2022 Community and walked through the guide as written, fixing what didn't survive contact:
.asmsources across Crypto without errors, so the guide now links the release-builds index and notes the verified version. Also corrected the Path example for the 64-bit installer (C:\Program Files\NASM).yasm.exefrom the Path (-p gasfor the.Ssources). Neithervsyasmnor aYASMPATHvariable is referenced anywhere insrc/, so those steps are gone.atlbase.h→ ATL components, MSB8066 exit 9009 → assemblers not on Path). This is the "multiple errors when trying to build on Visual Studio 2022" from the issue — each now maps to the component that fixes it.Tested combination: VS 2022 Community 17.14.36908, Windows SDK 10.0.26100, NASM 2.16.03, YASM 1.3.0, on Windows 11 — Release|x64 and Release|Win32 both build with 0 errors after following the updated guide.
Deliberately untouched, since I didn't verify them: the ARM64, driver/WDK, signing, WiX/MSI, and legacy-bootloader sections. One open question: nothing in the x64/Win32 app builds appears to hit an MFC header, but I installed ATL and MFC together so I can't prove MFC is unneeded — if it's only required by some other configuration, the component list could potentially be trimmed; happy to test if you can point me at what uses it.
English guide only —
ru/zh-cncopies will need the same treatment by translators.