Build 如何处理不同版本的依赖关系?

Build 如何处理不同版本的依赖关系?,build,dependencies,development-environment,cppcheck,asn1,Build,Dependencies,Development Environment,Cppcheck,Asn1,我有一个make file项目,它使用了多种工具,如cppcheck或asn1c。有几个开发人员在他们本地的定制linux机器上使用这个项目。问题是,每台linux机器都有不同版本的所需工具。例如,一个开发者安装了cppcheck 1.8,另一个开发者安装了cppcheck 1.6。现在我遇到了麻烦,因为不同版本的工具有不同的行为。例如,有些开发人员成功地通过cppcheck运行,有些则没有 所以我问如何处理不同版本的依赖关系? 我有一些想法: 将工具的源代码添加到项目中,并在运行构建过程之前编

我有一个make file项目,它使用了多种工具,如
cppcheck
asn1c
。有几个开发人员在他们本地的定制linux机器上使用这个项目。问题是,每台linux机器都有不同版本的所需工具。例如,一个开发者安装了cppcheck 1.8,另一个开发者安装了cppcheck 1.6。现在我遇到了麻烦,因为不同版本的工具有不同的行为。例如,有些开发人员成功地通过cppcheck运行,有些则没有

所以我问如何处理不同版本的依赖关系?

我有一些想法:

  • 将工具的源代码添加到项目中,并在运行构建过程之前编译工具
  • 静态编译工具并将二进制文件添加到项目中。因此,每个开发人员都会使用完全相同的二进制文件
  • 为每个开发人员提供虚拟机或远程访问权限。因此,每个人都使用相同的环境
  • 指导所有开发人员使用哪个Linux发行版,并使其系统保持最新
  • 在将生成提交到版本控制系统后,设置专用服务器来处理生成

    通过这种方式,您可以确保它们都使用相同的版本,您可以使用不同的库集设置多个BuildServer,以检查依赖项或操作系统的不同版本

    这是一种非常常见的软件开发设置

    请参阅本SO帖子,了解其背后的基本原理:

    在将构建提交到版本控制系统后,设置一个专用服务器来处理构建

    通过这种方式,您可以确保它们都使用相同的版本,您可以使用不同的库集设置多个BuildServer,以检查依赖项或操作系统的不同版本

    这是一种非常常见的软件开发设置

    参见本SO帖子,了解其背后的基本原理: