タグ付けされた質問 「make」

makeに関する質問については、ターゲット間の依存関係を管理することによってビルドプロセスを自動化するユーティリティ。このタグは、make自体に関する質問、またはmakeコマンドラインユーティリティの使用から生じる問題に関する質問に使用します。

8
ソースからtmuxをビルドするときにgccがlibeventを見つけられないのはなぜですか?
ルートアクセス権がないマシンにtmuxをインストールしたい。私はすでにlibeventをコンパイルし、それをインストール$HOME/.bin-libeventし、今私はtmuxのをコンパイルしたいのですが、いつもで終わる構成するconfigure: error: "libevent not found"私はlibeventディレクトリを指すようにしようとしたにも関わらず、Makefile.am修正することにより、LDFLAGSおよびCPPFLAGS、しかし何も動いていないようにみえ。 libeventのホームディレクトリを検索するようにシステムに指示するにはどうすればよいですか?

4
「インストール」コマンドの目的は何ですか?
install多くのMakefileでコマンドが使用されているのを見てきましたが、その存在と使用法はやや紛らわしいものです。マンページから見ると、cp機能の少ない見落としのように見えますが、に勝る利点がなければ使用されないと思いcpます。どうしたんだ?
49 command-line  make  cp 

1
致命的なエラーを作成:openssl / sha.h:そのようなファイルまたはディレクトリはありません
ドキュメントによると、「OpenSSLライブラリ」を必要とするプログラムをコンパイルしようとしています。OpenSSLをインストールしましたが、それでもエラーが発生しますopenssl/sha.h: No such file or directory。インストールする必要のある他のライブラリはありますか?
47 debian  make  openssl  ssl 

1
このMakefileは、コンパイラを指定しなくてもCプログラムをどのように作成しますか?
私は本「Advanced Linux Programming(2001)」[code]の Makefileを使用していました。GNU makeがMakefileでコンパイラーを指定しなくてもコードを正しくコンパイルするのを見るのは私にとって奇妙でした。レシピなしで焼くようなものです! これはコードの最小バージョンです。 test.c int main(){} メイクファイル all: test そして本当に作品を作ります!これは実行するコマンドです: cc test.c -o test ドキュメントに有用なものが見つかりませんでした。これはどのように可能ですか? PS追加の注意事項:言語さえ指定されていません。test.c利用可能であるため、GNU makeはを使用しccます。存在するtest.cpp場合test.cc(またはがない場合test.c)は、g++(ではなく)を使用しc++ます。
41 linux  make  gcc  gnu-make 

9
CentOS 6.4でredisを作成するjemallocおよびその他のエラー
redisを備えた新しい専用のCentos 6.4システムをセットアップしています。私は何度もredisをインストールしましたが、この問題に遭遇したことはありません(かつてcentos 6.4に参加したことはありません)。 cd redis-2.6.16 sudo make install エラー: MAKE jemalloc cd jemalloc && ./configure --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS="" /bin/sh: ./configure: Permission denied make[2]: *** [jemalloc] Error 126 make[2]: Leaving directory `/tmp/redis32/redis-3.2.6/deps' make[1]: [persist-settings] Error 2 (ignored) sh: ./mkreleasehdr.sh: Permission denied and later: …
41 centos  make 

10
プログラムがコンパイルされた形式で配布されないのはなぜですか?
しかし、彼らは次のような指示を与えます cd downloaded_program ./configure make install これにより、必要なELFと、おそらくいくつかの.soファイルが作成されます。 Windowsアプリのように、それらをダウンロード用のzipファイルに入れてみませんか?ユーザーがコンパイルする必要がある理由はありますか?

4
-jオプションを作成するために渡す最大数を決定する方法は?
できるだけ早くコンパイルしたい。図を移動します。そして、-jオプションに続く番号の選択を自動化したいと思います。シェルスクリプトなどで、その値をプログラムで選択するにはどうすればよいですか? の出力は、nprocコンパイルに使用できるスレッドの数と同等ですか? make -j1 make -j16

8
qmakeに使用するQtのバージョンを変更するにはどうすればよいですか?
これを行う簡単な方法があるはずですが、私のgooglefuは失敗しているので、qmakeを行うときに使用するQtのバージョンを切り替える(または永続的に変更する)方法についての情報を本当に感謝します。どのバージョンを尋ねると、次のものが得られます。 ~ $ qmake --version QMake version 3.0 Using Qt version 5.0.1 in /usr/lib/x86_64-linux-gnu QtCreatorをインストールしましたが、ここからどこに行くべきかわかりません。
31 make  qt  qtcreator 

3
.inファイルとは何ですか?
プロジェクトのソースに「* .in」ファイルが表示されることがあります。たとえば、「Makefile.in」の束。「.in」の意味は何ですか?私は、これはとは何かがあることを前提としていautoconfたりmake、または、それらのようなものを、私はよく分かりません。 「.inファイル拡張子」、「autoconf .inファイル拡張子」、「autoconf .in」、「autoconf dot in」、およびその他の亜種を、運よく検索しようとしました。

1
Linuxカーネル構築プロセスの各ステップで何が起こりますか?
カスタムカーネルを構築し、それらのカーネルを使用してUbuntuを起動する方法について多くのチュートリアルを読んで、ガイドに従って正常に起動し、カスタムカーネルを起動しましたが、ガイドの各コマンドが何をし、実際に何が起こっているのか理解できません各コマンド。 上で説明した手順Ubuntuのサイトが持つ多くの作業を行いfakeroot、dpkg、make-kpkg、いくつかのinitramfs、および他の恐ろしいものに動作することはなく、単に私は何が起こっているかを理解する助けにはなりません。 makeLinuxカーネルディレクトリでの出力は何ですか? 「圧縮カーネルイメージ」を作成しますか? 「圧縮されたカーネルイメージ」ファイルの名前とその場所はどこですか? 何をmake modulesするの? make modules前または後に行う必要がありmakeますか? makeモジュールは自動的にビルドされませんか? 新しくビルドされたカーネルをブート可能なカーネルのリストに追加するプロセスは(コマンドのリストだけでなく、英語で)何ですか? 何をmake installするの? ウィルmake install私はより多くの何もする必要はありませんように、ブート可能なカーネルの私のリストに追加? 同等のものはありmake modules_installますか?

5
Makefileインクルードenvファイル
いくつかのenv変数をMakefileに含めようとしています。envファイルは次のようになります。 FOO=bar BAZ=quux export各env変数につながるものはないことに注意してください。Makefileに先頭のenvファイルexportだけを追加するとinclude、すべてが正常に機能します。しかし、env vars sansをリードし続ける必要がありexportます。これによりinclude envfile、Makefileで使用することができなくなります。 私もこのようなことを試してみました: sed '/^#/!s/^/export /' envfile > $(BUILDDIR)/env include $(BUILDDIR)/env しかし、それを行うと、envファイルが含まれていないため、makeがエラーをスローします。

2
「make」エラーコードのリストはどこにありますか?
私が使用してFortranで書かれたプログラムのコンパイルしようとしていますmake(私が持っているMakefileを含むディレクトリにいる間、およびMakefileを、私はコマンドを入力し$ make target、「ターゲット」は、システム固有の目標仕様で、私の中に存在しているMakefileを。として、Iターゲット仕様のさまざまなリビジョンを試してみると、呼び出しを試みるとさまざまなエラーメッセージが表示されることがよくありますmake。 make[1]: Entering directory /bin/sh: line 0: test: too many arguments ./dpp angfrc.f > angfrc.tmp.f /bin/sh: ./dpp: Permission denied make[1]: *** [angfrc.o] Error 126 make[1]: Leaving directory make: *** [cmu60] Error 2 そして make[1]: Entering directory /bin/sh: line 0: test: too many arguments ./dpp -DSTRESS -DMPI -P -D'pointer=integer'-I/opt/mpich_intel/include …

3
コマンドが失敗してもメイクを停止せず、終了ステータスを確認します
コマンドが失敗しても停止しないようにGNU Make 3.81に指示しようとしています(そのため、コマンドの先頭にを付けます-)が、次のコマンドで終了ステータスを確認し、より有益なメッセージを出力したいです。しかし、以下の私のMakefileは失敗します: $ cat Makefile all: -/bin/false ([ $$? -eq 0 ] && echo "success!") || echo "failure!" $ $ make /bin/false make: [all] Error 1 (ignored) ([ $? -eq 0 ] && echo "success!") || echo "failure!" success! 上記のMakefileが「成功!」とエコーするのはなぜですか。「失敗!」の代わりに ? 更新: 受け入れられた回答をフォローし、さらに詳しく説明すると、次のようになります。 failure: @-/bin/false && ([ $$? -eq …
22 make  gnu-make 

2
Makefileで環境変数の値を確認する
Makefileターゲットがあり、環境変数の値を確認する必要があります。しかし、その正確な構文はわかりません。一生懸命に試してみましたが、見つかりません。どんな助けも大歓迎です。 環境変数名:TEST、その値: "TRUE" test_target: ifeq ($(TEST),"TRUE") echo "Do something" endif 次のエラーが表示されます。 /bin/sh: -c: line 0: syntax error near unexpected token `"TRUE","TRUE"' /bin/sh: -c: line 0: `ifeq ("TRUE","TRUE")'
21 shell  make 

3
ソースからインストールします。パッケージマネージャーを破壊せずに依存関係を解決する方法
ソフトウェアのコンパイルとインストールは、私が克服できない痛みと問題です。私は次のレベルに到達するために私の心をクリアするために、より知識のある誰かとこのプロセスの私の理解を駆け抜けたいです。 私が必要とする多くの科学ソフトウェアはパッケージとして配布されていません。「./configure」がコンパイル変数を設定し、依存関係を確認すると「make」がコンパイルを行い、「sudo make install」がすべてのライブラリとビンをその場所に配置することを理解しています。しかし、それは決して機能しません。私はめったにa)「./configure」ステージから抜け出て依存関係の地獄に入ることはなく、もしそうすれば、b)「sudo make install」はおそらく私の箱を壊します。 a)依存関係の地獄は非常にイライラします。時々私はライブラリを持っていますが、それは好きではありません。または、ライブラリがインストールされません。または、「構成」が見つかりません。または、私のディストリビューションは、あるべきではない場所にそれを置きました。または、私のシステムには2つのバージョンがあります。問題は、診断方法を理解できないため、これらの問題を修正できないことです。プログラマーになる必要のない人のために学ぶための良い参考資料は何ですか? b)私の理解では、「make install」はいくつかのライブラリを置き換え、パッケージマネージャーがこれを認識せずに設定を変更します。そのため、一部のプログラムは実行されず、他のプログラムは更新できません。したがって、「make install」を使用せずに、PATHに追加されたシンボリックリンクを使用して、コンパイル済みのバイナリをユーザーディレクトリに保持するだけでよいのでしょうか。 私のボックスはシングルユーザーで、無料のHDがたくさんあるので、問題が解決する場合、ライブラリのコピーを複数(数十)持つことはあまり気にしません。スペースは安いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.