web-dev-qa-db-ja.com

ソースからビルドするとはどういう意味ですか?

this を使用してnumpyをインストールしようとしています。このリンクは、次の手順で開きます。

これらの手順では、ソースからNumPyおよびSciPyライブラリを構築する方法について説明します。

NumPyまたはSciPyのみを使用する場合は、SciPyスタックのインストールで説明されているように、ビルド済みのバイナリをインストールします。

私が間違っていないのであれば、 "ビルド"とは通常、ファイルをマシンが読み取り可能なファイルにコンパイルしてから、それらを実行可能ファイルにグループ化することを意味します。 「ソースからビルド」という表現から、最初にファイルをビルドする方法は複数あり、次に、この特定の方法でファイルをソースコードからビルドすると推測します。

これが当てはまる場合、事前にビルドされたバイナリは、すでにコンパイルされているファイルのセットですか?

3
Muno

私が間違っていないのであれば、「ビルド」とは通常、ファイルをマシンが読み取り可能なファイルにコンパイルし、それらを実行可能ファイルにグループ化することを意味します。

基本的にはそうですが、この用語はそれよりもはるかに一般的です。たとえば、機械で読み取り可能なファイルは、実行可能ファイルではなくライブラリである場合があります。または、出力は、ネイティブマシンコードのblobではなく、ある種のVMで実行するように設計されたスクリプトのセットである可能性があります。重要なのは、「ソース」を変換する自動化されたプロセスであることです。人間によって編集されたファイルで、実際に役立つ他のファイルに変換されます。

「ソースからビルド」という表現から、最初にファイルをビルドするには複数の方法があり、次に、この特定の方法でソースコードからファイルをビルドすると推測します。

通常、このフレーズが使用される場合、それはビルド済みのバージョンを使用するのではなく、ソースから何かを構築することを指します。ビルドプロセスが複数のステージに分割されており、何らかの理由でそれらのステージの1つだけに関与している場合を除き、ソースを含まないものをビルドする「他の方法」はありません。

これが当てはまる場合、事前にビルドされたバイナリは、すでにコンパイルされているファイルのセットですか?

CやC++などの従来のコンパイル済み言語のコンテキストでは、それは正しいです。

8
Ixrec

一般に、「ソースからビルド」の「ソースから」の部分は冗長ですが、一般的に含まれる冗長性です。

ただし、非ソース形式からビルドすることは完全にもっともらしいことです(たとえそれが起こったとしても非常にまれですが)。たとえば、Cソースコードを LLVM IR にコンパイルして配布できます。次に、LLVM IRをターゲットアーキテクチャにコンパイルします。これにより、アーキテクチャに依存しない形式で配布でき、実際のコードも難読化されます。

ビルド済みのバイナリは、すでにコンパイルされているファイルのセットですか?

はい、通常、これは実行可能形式またはリンク可能ライブラリにコンパイルされることを意味します(上記のような中間形式とは対照的)。

3
8bittree

すでにお気づきのように、building from sourcesは通常、ソース形式(つまり、実行不可、使用不可)から最終的な形式(実行可能プログラムですが、共有ライブラリでさえバイナリーを持つ)形)。

しかし、通常はone以外のものを構築する方法はありません。たとえば、手順をスキップできます。何かが他のものに依存している場合、それらの依存関係は他の場所から既にコンパイルされている可能性があります-または、この場合、プリコンパイルされたバイナリが取得される可能性があります。

はい、ビルド済みバイナリは、コンポーネントが既にコンパイルされている最終製品です-これは、共有ライブラリとしての実行可能ファイルに当てはまります。

1
watery