「Linuxコマンド - Make」の版間の差分
|  (→概要) | |||
| 1行目: | 1行目: | ||
| == 概要 == | == 概要 == | ||
| <br><br> | |||
| == makeのインストール == | |||
| 多くのLinuxディストリビューションでは、標準でmakeがインストールされている。<br> | |||
| もし、別途インストールする必要がある場合、ソースコードからmakeをインストールする。<br> | |||
| <br> | |||
| [https://ftp.gnu.org/gnu/make/ GNUソフトウェアの公式Webサイト]にアクセスして、makeのソースコードをダウンロードする。<br> | |||
| ダウンロードしたファイルを解凍する。<br> | |||
|  tar xf make-<バージョン>.tar.gz | |||
|  cd make-<バージョン> | |||
| <br> | |||
| makeをビルドおよびインストールする。<br> | |||
|  mkdir build && cd build | |||
|  ../configure --prefix=<makeのインストールディレクトリ> | |||
|  make -j $(nproc) | |||
|  make install | |||
| <br> | |||
| ~/.profileファイル等に、環境変数<code>PATH</code>を追記する。<br> | |||
|  vi ~/.profile | |||
| <br> | |||
|  # ~/.profileファイル | |||
|  export PATH="/<makeのインストールディレクトリ>/bin:$PATH" | |||
| <br><br> | <br><br> | ||
2022年12月12日 (月) 13:20時点における版
概要
makeのインストール
多くのLinuxディストリビューションでは、標準でmakeがインストールされている。
もし、別途インストールする必要がある場合、ソースコードからmakeをインストールする。
GNUソフトウェアの公式Webサイトにアクセスして、makeのソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf make-<バージョン>.tar.gz cd make-<バージョン>
makeをビルドおよびインストールする。
mkdir build && cd build ../configure --prefix=<makeのインストールディレクトリ> make -j $(nproc) make install
~/.profileファイル等に、環境変数PATHを追記する。
vi ~/.profile
# ~/.profileファイル export PATH="/<makeのインストールディレクトリ>/bin:$PATH"
Makeコマンドの基本
コンパイラの変更
コンパイラを指定する場合、一般的に使用されるオプションはCC、GCC、CXX、CCX等があるが、
Makefileファイルを確認して、どの変数が使用されているか確認する必要がある。
Makefileファイルが定義に沿って記述されている場合、C言語コンパイラを指定する時はCC、C++コンパイラを指定する時はCXXを使用する。
make CC=/home/<ユーザ名>/InstallSoftware/GCC/gcc-10_2_0/bin/gcc-10.2 または make CXX=/home/<ユーザ名>/InstallSoftware/GCC/gcc-10_2_0/bin/g++-10.2
また、configureコマンドを実行する時に指定することもできる。
configureコマンドは、生成されるMakefileファイルに対して、新しいCC値またはCXX値を自動的に組み込む。
./configure CC=/home/<ユーザ名>/InstallSoftware/GCC/gcc-10_2_0/bin/gcc-10.2 --prefix=<インストールディレクトリ> または ./configure CXX=/home/<ユーザ名>/InstallSoftware/GCC/gcc-10_2_0/bin/g++-10.2 --prefix=<インストールディレクトリ>
インクルードディレクトリの変更
makeコマンドの実行時において、参照するライブラリとヘッダファイルを指定する場合、LDFLAGSオプションとCFLAGSオプションを付加する。
以下の例では、ホームディレクトリのlibディレクトリとincludeディレクトリを指定している。
make LDFLAGS="-L/home/<ユーザ名>/lib" CFLAGS="-I/home/<ユーザ名>/include" または make LDFLAGS="-L/home/<ユーザ名>/lib" CPPFLAGS="-I/home/<ユーザ名>/include"
インクルードディレクトリの設定を永続化する場合は、.profileファイルまたは.bashrcファイルに、以下の設定を追記する。
export C_INCLUDE_PATH=<C言語のインクルードディレクトリ> export CPLUS_INCLUDE_PATH=<C++のインクルードディレクトリ>
インストールディレクトリの変更
make installコマンドの実行時において、パッケージ内部のディレクトリ構造を変更せずに別の場所にインストールする場合、DESTDIRオプションを付加する。
例えば、インストールしたパッケージをtarballにして、別のPCにコピーする場合等に使用する。
以下の例では、configureコマンドの実行時のプレフィックスとして/hogeディレクトリ、
make installコマンドでは、ホームディレクトリをインストール先のディレクトリとしてインストールしている。
これにより、インストールディレクトリは、/home/<ユーザ名>/hogeディレクトリなる。
./configure --prefix=/hoge make -j $(nproc) make DESTDIR=/home/<ユーザ名> install