如何使用Visual Studio 2022编译zstd库?
VS2022编译zstd 1.5.6解决RC1015错误的方案
问题原因
错误提示的libzstd-dll.rc是旧版VS项目的资源文件,cmake生成VS2022项目时引用了它,但资源编译器的包含路径未配置正确,导致找不到zstd.h头文件。
具体修复方法
方法1:切换到zstd根目录执行cmake命令
你之前在src目录下执行cmake,路径上下文错误导致包含路径失效。切换到zstd-1.5.6根目录,重新执行以下命令:
cmake -B build-cmake-debug -S build/cmake -G "Visual Studio 17 2022" -A x64 -DMSVC_RUNTIME_LIBRARY=MultiThreadedDLL cmake --build build-cmake-debug
方法2:手动修改项目的资源编译包含路径
如果方法1无效,找到生成的build-cmake-debug/lib/libzstd_shared.vcxproj文件,用文本编辑器打开,找到<ResourceCompile>节点,添加zstd.h所在的路径:
<ResourceCompile> <AdditionalIncludeDirectories>$(ProjectDir)..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ResourceCompile>
保存后重新执行编译命令。
方法3:编译静态库规避资源文件问题
若不需要动态库,可直接编译静态库,跳过资源文件的处理:
cmake -B build-cmake-debug -S build/cmake -G "Visual Studio 17 2022" -A x64 -DMSVC_RUNTIME_LIBRARY=MultiThreadedDLL -DZSTD_BUILD_SHARED=OFF cmake --build build-cmake-debug
方法4:升级zstd到新版本
zstd 1.5.6之后的版本(如1.5.8及以上)已修复VS2022的适配问题,下载最新版本后,直接使用你原来的cmake命令即可正常编译。
内容的提问来源于stack exchange,提问作者BruceYang
相关产品推荐
相关产品推荐

