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

makefileは、ビルドコントロール言語/ツールmakeの入力ファイルです。ターゲットと依存関係、およびターゲットを更新するために実行する関連コマンド(別名レシピ)を指定します。

10
ソースファイルが異なるディレクトリにあるメイクファイル
ディレクトリ構造が次のようなプロジェクトがあります: $projectroot | +---------------+----------------+ | | | part1/ part2/ part3/ | | | +------+-----+ +---+----+ +---+-----+ | | | | | | | data/ src/ inc/ src/ inc/ src/ inc/ c / c ++ソースファイルの一部を補完/リンクできる部分/ src(または実際にはどこにでもある)のmakefileをどのように記述すればよいですか?/ src? -I $ projectroot / part1 / src -I $ projectroot / part1 / inc …
135 linux  makefile 

8
前提条件としてのMakefile変数
Makefileでは、deployレシピはENVそれ自体を適切に実行するために設定される環境変数を必要としますが、他のものは気にしません、例えば: ENV = .PHONY: deploy hello deploy: rsync . $(ENV).example.com:/var/www/myapp/ hello: echo "I don't care about ENV, just saying hello!" この変数が設定されていることを確認するにはどうすればよいですか。例:次のように、このmakefile変数をデプロイレシピの前提条件として宣言する方法はありますか。 deploy: make-sure-ENV-variable-is-set ? ありがとうございました。
134 makefile 



4
gmakeとmakeの違いは何ですか?
「gmake」と「make」の違いを理解しようとしていますか? 私のLinuxボックスではそれらは同じです: % gmake --version GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % make --version GNU Make 3.81 Copyright (C) 2006 Free Software …
127 build  makefile  gnu-make 

4
別のMakefileからMakefileを呼び出す方法は?
あるメイクファイルを別のメイクファイルから呼び出すと、予期しない結果が出ます。2つのmakefileがあり、1つは/path/to/project/makefileと呼ばれ/path/to/project/gtest-1.4.0/make/Makefileます。前者を後者と呼んでいる。/ path / to / project / makefileには、 dev: $(OBJ_FILES) $(CPPC) $(LIBS) $(FLAGS_DEV) $(OBJ_FILES) -o $(BIN_DIR)/$(PROJECT) $(MAKE) -f ./gtest-1.4.0/make/Makefile clean: rm -f ./*~ ./gmon.out ./core $(SRC_DIR)/*~ $(OBJ_DIR)/*.o rm -f ../svn-commit.tmp~ rm -f $(BIN_DIR)/$(PROJECT) make -f gtest-1.4.0/make/Makefile clean そして/path/to/project/gtest-1.4.0/make/Makefile私は all: $(TESTS) clean: rm -f $(TESTS) gtest.a gtest_main.a *.o 次の発行: cd /path/to/project …
125 makefile  gnu-make 

9
Windowsで「make」をインストールして使用する方法
私は自分のマシンにクローンを作成したリポジトリの誰かの指示に従っています。私が欲しいのは簡単makeです。コード環境のセットアップの一部としてコマンドを使用できるようにすることです。しかし、私はWindowsを使用していて、オンラインで検索して、ダウンロードするmake.exeファイル、ダウンロードするmake-4.1.tar.gzファイル(次にどうするかわからない)、MinGWのダウンロードに関するもの(GNUの場合;インストール後、「make」についての記述は見つかりませんでした。 私は、GNUコンパイラや関連するものは欲しくない。Windowsで「make」のみを使用したい。そのために何をすべきか教えてください。 前もって感謝します!

19
Makefileで複数行の文字列変数を作成することは可能ですか
複数行の文字列(メークリリースのお知らせの本文など)であるmakefile変数を作成します。何かのようなもの ANNOUNCE_BODY=" Version $(VERSION) of $(PACKAGE_NAME) has been released It can be downloaded from $(DOWNLOAD_URL) etc, etc" しかし、私はこれを行う方法を見つけることができないようです。出来ますか?

2
makefileは別のターゲットを実行します
私はこのような構造のメイクファイルを持っています: all : compile executable clean : rm -f *.o $(EXEC) 「make all」を実行する前に、ターミナルで一貫して「make clean」に続けて「clear」を実行していることに気付きました。厄介なC ++コンパイルエラーを試す前に、クリーンな端末を用意するのが好きです。だから私は3番目のターゲットを追加しようとしました: fresh : rm -f *.o $(EXEC) clear make all これは機能しますが、makeの2番目のインスタンスが実行されます(私は信じています)。makeの2番目のインスタンスを実行せずに同じ機能を取得する正しい方法はありますか?
122 makefile 

5
makefileの複数行bashコマンド
数行のbashコマンドを使用してプロジェクトをコンパイルする非常に快適な方法があります。しかし、今私はそれをmakefileでコンパイルする必要があります。すべてのコマンドが独自のシェルで実行されることを考えると、私の質問は、メイクファイルで互いに依存している複数行のbashコマンドを実行する最良の方法は何ですか? たとえば、次のように: for i in `find` do all="$all $i" done gcc $all また、誰かが単一行のコマンドでさえbash -c 'a=3; echo $a > file'ターミナルで正しく機能する理由を説明できますが、メイクファイルの場合は空のファイルを作成しますか?
120 bash  makefile 

3
makeのDESTDIRおよびPREFIX
ソフトウェアを特定のディレクトリにインストールしようとしています。私はいくつかの方法を見つけましたが、それらの違いは何かわかりません。 ./configure --prefix=*** make install DESTDIR=*** make install prefix=*** 私はこれら3つの機能について混乱しています。彼らは同じ目標を達成していますか?
118 c  linux  bash  makefile  configure 

4
なぜ常に./configure; 作る; インストールを行います。3つの別々のステップとして?
ソースから何かをコンパイルするたびに、同じ3つのステップを実行します。 $ ./configure $ make $ make install インストールプロセスを複数のステップに分割することは理にかなっていますが、理解できません。この惑星のすべてのコーダーが同じ3つのコマンドを何度も何度も記述して、1つのジョブを完了する必要があるのです。私の観点から./install.shは、次のテキストを含むソースコードと共にスクリプトが自動的に配信されるようにするのはまったく理にかなっています。 #!/bin/sh ./configure make make install なぜ人々は3つのステップを別々に行うのですか?

3
Cmake vs makeサンプルコード?
いずれのサンプルのコードがあった場合、私は思っていたMakefileS( make)とは、CMakeLists.txt(cmake)の両方が(唯一の違いは、1がで書かれているということで同じことを行うことmakeや、他の中cmake)。 「cmake vs make」を探してみましたが、コードの比較は見つかりませんでした。たとえ単純なケースであっても、違いを理解することは本当に役に立ちます。
117 makefile  cmake 

2
src /のすべての.cppファイルをobj /の.oにコンパイルしてから、。/のバイナリにリンクできますか?
私のプロジェクトディレクトリは次のようになります。 /project Makefile main /src main.cpp foo.cpp foo.h bar.cpp bar.h /obj main.o foo.o bar.o 私は何を私のメイクをしたいと思い、すべてのコンパイルすることです.cpp内のファイル/srcにフォルダを.o内のファイル/objのすべてのリンク、その後、フォルダ.o内のファイルを/obj最上位レベルのフォルダに出力バイナリに/project。 私はメイクファイルの経験がほとんどないので、これを達成するために何を検索すればよいか本当にわかりません。 また、これはこれを行う「良い」方法ですか、それとも私がやろうとしていることに対してより標準的なアプローチがありますか?

5
CMake出力/ビルドディレクトリ
私はCMakeにかなり慣れていないので、その使用方法に関するいくつかのチュートリアルを読み、3つの異なるコンパイラー用のプログラムを作成するために、CMakeスクリプトの複雑な50行を書きました。これで、CMakeに関する私の知識はすべて終わります。 私の問題は、プログラムを作成するときに、そのフォルダーに触れたり、変更したりしたくないソースコードがあることです。すべてのCMakeおよびmake出力ファイルとフォルダーをに入れたい../Compile/ので、CMakeスクリプトのいくつかの変数をそのために変更しました。ラップトップで次のようなことをしたとき、それはしばらくの間機能しました: Compile$ cmake ../src Compile$ make それで、私が今いるフォルダーにきれいな出力がありました。それがまさに私が探しているものです。 今、私は別のコンピューターに移動し、CMake 2.8.11.2を再コンパイルしましたが、ほぼ正方形に戻りました!それは常にsrc私のものCMakeLists.txtが置かれているフォルダーに事をコンパイルします。 CMakeスクリプトでディレクトリを選択する部分は次のとおりです。 set(dir ${CMAKE_CURRENT_SOURCE_DIR}/../Compile/) set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE) set(LIBRARY_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${dir}) set(CMAKE_BUILD_FILES_DIRECTORY ${dir}) set(CMAKE_BUILD_DIRECTORY ${dir}) set(CMAKE_BINARY_DIR ${dir}) SET(EXECUTABLE_OUTPUT_PATH ${dir}) SET(LIBRARY_OUTPUT_PATH ${dir}lib) SET(CMAKE_CACHEFILE_DIR ${dir}) そして今、それは常に終わります: -- Build files have been written to: /.../src …
115 c++  build  makefile  cmake  output 

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