コンパイル中の分割エラー - どこから始めるべきですか?

コンパイル中の分割エラー - どこから始めるべきですか?

今すぐ解決する必要がある特定の問題がありますが、この種の問題(他の人のコードをコンパイルするときに発生する分割エラー)を解決するための良い戦略を知りたいです。したがって、特定または一般的な種類の答え。

詳細

インストールしようとしています。OpenSSLSynology DS412+の場合、1.0.1g。バージョン湾岸協力協議会鉱山(v4.2.1)は64ビット用にコンパイルされておらず、OpenSSLは次のように文句を言います。

$ ./config --prefix=/opt         \
           --openssldir=/etc/ssl \
           --libdir=lib          \
           shared                \
           zlib-dynamic
$ make

せん断!

cryptlib.c:1: sorry, unimplemented: 64-bit mode not compiled in
cryptlib.c: In function 'OPENSSL_ia32cap_loc':
cryptlib.c:677: warning: dereferencing type-punned pointer will break strict-ali
asing rules
make[1]: *** [cryptlib.o] Error 1

だから、GCC 4.8.2をインストールしようとしていますが(今は複数のバージョンを試してみましたが)、毎回失敗するようです良い製造慣行の一部make。これは頻繁に起こり、GMPをダウンロードしてコンパイルすることにしました。

$ ./configure --prefix=/opt --build=i386-pc-linux-gnu
$ make

./gen-fac 32 0 >fac_table.h || (rm -f fac_table.h; exit 1)
/opt/bin/bash: line 1: 20507 Segmentation fault      (core dumped) ./gen-fac 32
0 > fac_table.h
make: *** [fac_table.h] Error 1

私はCプログラマーでも私のコードでもないので、Valgrindを使ってコアをチェックする可能性は低いです。私はライブラリをコンパイルするときにこのような状況に何度もあり、Cを学ぶことは私にとって優先順位ではありません。代替案はありますか?

  • Cを学ぶ
  • フォーラム/メーリングリストにお問い合わせください。

私がアクセスできる唯一のパッケージマネージャは、完全なGCCよりも少ない機能を提供するipkgです。仮想マシンを設定し、ipkg用のバイナリをビルドしてDS412に配置できますか?以前これをやったことがないので、それがどれほど実現可能であるかはまったくわかりません。

どんな助けや洞察力でも大変感謝いたします。

ベストアンサー1

欲しいことができないと思います。これらのデバイスタイプのデバイス(Synologyなど)は、単純なバージョンのツール(Bashなど)を使用することがよくあります。これらの単純なバージョンには機能がない可能性があります。これは非標準の場所です/opt/bin/bash

https://www.synology.com/en-us/products/overview/DS412%2B

直接ビルドする前に、OpenSSLが直接ビルドするのではなく、単にアップグレードできるバイナリパッケージとして提供されていることを確認するために、そのWebサイトまたはフォーラムを見てみましょう。

おすすめ記事