gpt4 book ai didi

homebrew - 并排安装具有不同编译器的相同软件/版本

转载 作者:行者123 更新时间:2023-12-04 21:08:03 26 4
gpt4 key购买 nike

为了开发/测试我们的 CFD 代码,我喜欢经常在 Clang(因为它的严格性/警告)和 GCC(为了性能)之间切换,但这需要使用相同的编译器编译它的一些依赖项(例如 NetCDF)。

我知道 Homebrew 可以选择安装多个版本的软件 side-by-sideswitch它们之间,但是否可以使用相同的软件版本做类似的事情,但用不同的编译器编译(通过设置 HOMEBREW_CCHOMEBREW_CXX )?

类似于(一厢情愿,在以某种方式安装了 Clang 和 GCC 的 NetCDF 之后):

brew switch netcdf 4.3.3-gcc 
brew switch netcdf 4.3.3-clang

最佳答案

我认为只有当您明确使用不同的版本号时,这才有可能,例如在您使用“4.3.3-gcc”和“4.3.3-clang”的示例中。

如果版本号相同,则构建没有区别,brew 无法区分它们。

我也不会这样做。

  • 通过以多种不同的方式编译同一个库,您现在开始陷入依赖的噩梦。
  • 依赖冲突。因为即使你换掉了“netcdf”,你怎么知道你也换掉了它的所有依赖项?如果它们不是使用相同的编译器编译的,那么可能会发生不好的事情,例如,由于调用方式的差异或由于在一个编译器中为应用程序及其依赖项启用的选项在另一个编译器中未启用,可能会出现冲突 build 。

  • 我不建议这样做,这太麻烦了。

    但是,如果您确实需要两个构建(例如用于测试),那么我会将它们构建到系统路径之外的隔离文件夹树中,并在那里对它们进行任何测试。 Brew 不是解决此问题的最佳方法,因为这是一个非标准用例。

    关于homebrew - 并排安装具有不同编译器的相同软件/版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41097359/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com