【问题标题】:ruby with jemalloc won't configure - homebrew/OSX/montery/m1/arm(?)带有 jemalloc 的 ruby​​ 不会配置 - homebrew/OSX/montery/m1/arm(?)
【发布时间】:2023-02-12 04:08:59
【问题描述】:

OSX/Monterey/M1/Arm/Homebrew:我这辈子都做不到:

./configure --with-jemalloc

它死于

checking jemalloc/jemalloc.h presence... no
configure: error: jemalloc requested but not found

即使它就在那里:/opt/homebrew/Cellar/jemalloc/5.2.1_1/include/jemalloc/jemalloc.js

brew --prefix jemallocjemalloc-config --includedir 看起来都是正确的。

我尝试了各种版本:

export RUBY_CONFIGURE_OPTS="--with-jemalloc-include=$(brew --prefix jemalloc)/include

和/或

./configure --with-jemalloc-include=$(brew --prefix jemalloc)/include

但没有骰子。甚至不确定这些环境变量/标志是否受到 ruby​​ 的尊重,或者它们是否是某种 rvm/rbenv/ruby-build 的东西。

我决定直接使用 ruby​​ 的配置而不是 rvm/build 工具进行所有测试。

【问题讨论】:

    标签: ruby jemalloc


    【解决方案1】:

    尝试以下操作:

    ❯ export HOMEBREW_PREFIX=$(brew --prefix)
    ❯ export CPPFLAGS="$CPPFLAGS -I $HOMEBREW_PREFIX/include"
    ❯ export LDFLAGS="$LDFLAGS -L $HOMEBREW_PREFIX/lib"
    ❯ cd ruby-2.7.6 && ./configure --with-jemalloc
    ❯ make && make install
    

    【讨论】:

    • 我尝试了这个并且它更进一步,但我遇到了:In file included from ../../.././include/ruby/defines.h:79: ../../.././ include/ruby/missing.h:33:11: fatal error: 'sys/time.h' file not found #include <sys/time.h> ^~~~~~~~~~~~ 想法?
    • 另外,你能指出你是如何得出这个答案的吗?
    【解决方案2】:

    这使用 RVM 工作:

    # Install jemalloc first
    brew install jemalloc
    
    # Install using RVM:
    rvm install 3.2.1 --with-jemalloc --with-cppflags="-I$(brew --prefix)/include" -E "LDFLAGS=-L$(brew --prefix)/lib"
    

    --with-cppflags 似乎按预期工作,但它被传入的内部 RVM 标志覆盖,因此 --with-ldflags 什么都不做。这就是我们传入 -E 标志(作为环境变量)的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 2022-01-10
      • 2012-09-09
      • 1970-01-01
      • 2021-03-02
      • 2012-03-20
      • 1970-01-01
      相关资源
      最近更新 更多