编译Microsoft Detours失败:路径错误及IDE配置修改求助
编译Microsoft Detours时的路径配置问题
错误信息
1>LINK : warning LNK4281: undesirable base address 0x7100000 for x64 image; set base address above 4GB for best ASLR optimization 1>LINK : warning LNK4281: undesirable base address 0x7200000 for x64 image; set base address above 4GB for best ASLR optimization 1>LINK : warning LNK4281: undesirable base address 0x7300000 for x64 image; set base address above 4GB for best ASLR optimization 1>LINK : warning LNK4281: undesirable base address 0x1900000 for x64 image; set base address above 4GB for best ASLR optimization 1>LINK : warning LNK4281: undesirable base address 0x1A00000 for x64 image; set base address above 4GB for best ASLR optimization 1>error CS1668 : Warning as error : Invalid search path 'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133\atlmfc\lib\x64' specified in 'LIB environment variable' -- 'The system cannot find the path specified. ' 1>NMAKE : fatal error U1077: 'C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\csc.EXE' : return code '0x1' 1>NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\nmake.exe"' : return code '0x2' 1>NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\nmake.exe"' : return code '0x2' 1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(54,5): error MSB3073: The command "SET DETOURS_TARGET_PROCESSOR=x64 1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(54,5): error MSB3073: cd .. 1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(54,5): error MSB3073: nmake clean 1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(54,5): error MSB3073: nmake" exited with code 2. 1> 5 Warning(s) 1> 5 Error(s)
环境情况
本地Visual Studio 2022 Community中,14.29.30133版本的MSVC路径下无atlmfc文件夹,但以下两个版本路径存在该文件夹:
14.39.3351914.42.34433
解决步骤
方法1:修改项目属性中的库路径
- 在Visual Studio中打开Detours项目,右键项目名称选择属性。
- 导航到配置属性 -> VC++目录 -> 库目录。
- 删除无效的
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133\atlmfc\lib\x64路径,添加存在的版本路径(如C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\atlmfc\lib\x64)。 - 点击应用后重新编译项目。
方法2:调整Visual Studio的工具集版本
- 右键项目名称选择属性,进入配置属性 -> 常规。
- 在平台工具集下拉菜单中,选择已安装的包含
atlmfc的版本(如v143对应14.39.x或更高版本)。 - 保存设置后重新执行编译。
方法3:手动修改环境变量(临时解决)
- 打开Visual Studio的x64 Native Tools Command Prompt。
- 执行命令移除无效路径并添加有效路径:
set LIB=%LIB:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133\atlmfc\lib\x64;=% set LIB=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\atlmfc\lib\x64;%LIB% - 切换到Detours源码目录,执行
nmake clean和nmake命令重新编译。
关于LNK4281警告
这些警告提示x64镜像的基址低于4GB,影响ASLR优化。可通过以下方式解决:
- 打开项目属性,进入配置属性 -> 链接器 -> 高级。
- 将基址设置为
0x100000000或更高的4GB以上地址。 - 保存后重新编译即可消除警告。
内容的提问来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

