私は自分の学習プロセスのためだけに、外部プロジェクトに頼らずに簡単に移植可能なRubyを構築しようとしています。Ruby 2.4.2のコンパイルに関する問題
私はを使用して、Rubyバイナリが最小限に抑えようとしているときにどのライブラリが動的にリンクしているかを判断しています。
昨日、私はRubyを3つのライブラリに対して動的にリンクしていましたが、今日はRubyを構築すると13とリンクしています。私は昨日から今日までに何が変わったのか分かりませんが、それが昨日の編集の前に存在していたライブラリのうち、昨日のルビーオン
otool -L
の結果を実行可能だった:
otool -L ruby
ruby:
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.8.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 489.0.0)
しかし、今日、それは次のようになります。
otool -L ./ruby
./ruby:
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.8.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/opt/openssl/lib/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)
/usr/lib/libffi.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/opt/gdbm/lib/libgdbm.4.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/lib/libutil.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libedit.3.dylib (compatibility version 2.0.0, current version 3.0.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 489.0.0)
誰もが何が起こっているか知っていますか?
私はそうのようにRubyが2.4.2コンパイルしています:1ポイントで
CFLAGS="$X" CXXFLAGS="$X" LDFLAGS="$X" ./configure --prefix=/tmp/ruby-deploy --with-openssl-dir=$(brew --prefix openssl) --with-static-linked-ext --disable-install-doc --without-gmp
を - --with-static-linked-ext
の点に注意してください。これに
X="-arch i386 -mmacosx-version-min=10.5"
CFLAGS="$X" CXXFLAGS="$X" LDFLAGS="$X" ./configure --prefix=/tmp/ruby-deploy --with-openssl-dir=$(brew --prefix openssl) --disable-install-doc --without-gmp
あなたは昨日でしたが、異なる結果を得たことを、今日と同じことをしたならば、何かがあなたのシステムに変更することになる。それはあなたのプロジェクトで何かあったかもしれませんあなたのシステムの他の場所にも存在する可能性があります。私は、私たちが推測以外の方法で質問に答えることはできません。 –
@JohnBollinger – horseyguy