如何在Windows上使用开源库?

时间:2011-01-17 01:30:44

标签: windows visual-studio open-source cross-platform

有许多可以使用Visual Studio编译的开源库。我正在将程序从Linux移植到Windows,但它依赖于许多库。我不知道有关库的最佳实践是什么。

在Linux上,这些库通常是发行版的一部分。例如,要在Debian上使用sqlite,您只需要安装libsqlite3-dev,并且包含文件和库(包括静态和动态)会自动安装并可供您的程序使用。

如果您需要的版本与您的发行耗材不同,可以在主目录中编译它,将其安装到~/include~/lib,然后设置相应的environment variables以便您的编译器在其搜索路径中包含这些目录。

使用在Windows上作为源分发的库的最佳方法是什么?如果我动态链接而不是静态链接,是否有一种简单的方法可以将所需的DLL复制到输出目录中以简化重新分配(假设满足许可证要求)?

2 个答案:

答案 0 :(得分:1)

在Windows上,最简单的方法是构建自己的DLL并将它们包含在程序目录中。

是的它使用了更多的空间,但是这些天HD很大并且避免了许多不兼容版本(DLL地狱)的麻烦。 Windows使用不同的编译器构建的lib版本也会有一些皱纹,所以运送你自己的版本是最安全的

答案 1 :(得分:1)

选项1 - 具有Windows二进制分发的项目/不在DevStudio中构建。

E.g。 OpenSSL的。

OpenSSL等项目最好下载到自己的文件夹中,并使用自己的脚本构建。 OpenSSL通常在Windows构建中安装到C:\ OpenSSL,所以一旦完成,您可以将C:\ OpenSSL \ include和C:\ OpenSSL \ lib添加到您的项目环境中以访问OpenSSL头和Libs。您需要将实际的dll文件从C:\ OpenSSL \ bin复制到项目暂存文件夹(通常是您的SolutionDir \ Debug或Release)。

一旦你完成了一次构建OpenSSL的麻烦,你就不想再这样做了。或者,如果您已经下载了二进制发行版,那么最好单独使用它。只需向其他人记录您使用的二进制发行版,以便他们可以适当地设置Visual Studio构建环境。

选项2 - 易于为(或已经拥有)创建Visual Studio项目的小型库。 Lua和sqllite属于这一类。 对于足够小的项目,简单地将它们添加到子文件夹中的解决方案并不是不方便。这样,您可以将其输出直接构建到解决方案输出文件夹中,并且您不必在解决方案中捆绑预构建二进制文件,这样可以更轻松地与其他人共享项目。

选项3 - 作为替代方案,您可以为开源项目的产品创建自己的标准化文件夹。创建C:\ oss \ include,c:\ oss \ lib,c:\ oss \ bin等,将这些路径添加到DevStudios lib并包含路径,将c:\ oss \ bin添加到系统PATH变量中,同时构建每个路径OSS项目,将相应的文件复制到这些位置。

同样,虽然方便,但这种设置使得难以在第二台PC上复制构建环境,因此您可能希望将整个C:\ oss树保留在源代码管理中。