【问题标题】:visual studio and linking to pre-compilied binaries (lib / dll)视觉工作室并链接到预编译的二进制文件(lib / dll)
【发布时间】:2020-02-10 21:42:41
【问题描述】:
一些库可以作为预编译的二进制文件下载,通常在特定架构(x32 或 x64)中,但我也注意到一些预编译的二进制文件是根据 Visual Studio 版本拆分的,例如:vc17_x64。假设我使用的是 Visual Studio 2019。这是否意味着我必须使用为 vc2019 预编译的二进制文件,或者在没有合适版本时从源代码构建库?我不清楚,因为一些预编译的二进制文件不包含有关 Visual Studio 版本的信息。
【问题讨论】:
标签:
windows
visual-studio
visual-c++
dll
lib
【解决方案1】:
如果预编译的库包含 Visual Studio 版本信息,您应该使用该版本的 Visual Studio 来处理该库。但情况并非总是如此,因为经常发生的情况是,较旧的(相对于 VS 版本)库包含的代码是较新 VS 的头文件和运行时 SDK 文件(.NET、C /C++、Windows SDK 等)。反过来,当库较新时也可以工作,但它远不那么频繁。您可以尝试,如果它不适用于您的特定库和 VS 版本,那么您应该考虑匹配版本,由于代码更改的相同原因,重建并不总是有效。
如果库不包含 VS 版本信息,那么可以合理地假设它可移植/兼容操作系统(Windows、Linux 等)和编程语言版本(C++ 11、C++ 14、C# 7、C# 8 等) .然而,VS 版本也在这里发挥作用,并不是每个 VS 都在每个 Windows 中运行,它也不支持相同的运行时、SDK 和语言版本。您应该始终查看库文档以了解推荐的工作环境,如果此信息不存在,则需要反复试验和/或社区咨询。