Makefileとは正確に何であり、どのように作成することができますか?


8

私はこれがばかげた質問であることを知っていますが、私は自分でLinuxを学ぶために一生懸命努力しているので、あなたの仲間からの助けが必要です。

私はインターネットでこのタスクを見つけて解決しようとしていますが、Linuxでmakefileをどのように使用し、どのように作成するかを正確に理解していません。

私の印刷作業ディレクトリが /home/george/Documents

以下を行うメイクファイルを作成したいと思います。

  1. 「こんにちは、今日は日です」のようなメッセージを表示します。太陽は日曜日から来ています。したがって、date最初の3文字だけを表示するには、このmakeファイルでコマンドを使用する必要があります。
  2. 使用/etc/hosts中に圧縮/tmpするgzip(おそらくここでは次のようなものでなければなりません

    gzip -c SOURCE DESTINATION # ?? 
    

乾杯


Makefileは、ソフトウェア開発アクティビティで、ソースファイルから古いオブジェクトファイルを選択的にビルドするためのものです。それはあなたが何をするかとは何の関係もありません。
enzotib 2013

回答:


8

あなたの質問に答えるために、私はあなたに1つの行/段落の答えを与える傾けることは、すべてのthing.Readを扱うので、最初のリンクを、それはあまりにも例とあなたが必要なすべてを持っています。

makeに関するすべてを説明できる優れたチュートリアル



mrbook.org/blog/tutorials/make tutorialは古いc ++コードを使用しており、コンパイルできなくなりました。理解して修正するには、この質問を参照してください。
David

リンクは死んでいる。
ComputerScientist

2

Makefileは、Cプログラムのコンパイル用の「マップ」として使用されます。それらはmakeユーティリティと連動し、実行可能ファイルに変換されたときに正しく動作するためにプログラムをコンパイル/リンクする方法を説明します。グローバルUNIX /シェルタスクの場合は、makefileではなくシェルスクリプトを探します。

参照http://en.wikipedia.org/wiki/Make_(software)#Makefilesのメイクファイルの詳細については、およびhttp://en.wikipedia.org/wiki/Shell_scriptシェルスクリプトを発見します。

あなたがやろうとしていることのための基本的なシェルスクリプトは次のようになります:

#!/bin/bash
echo "Hello world, today is $(date +%a)"
gzip -c SOURCE DESTINATION

ファイルでこれを保管し、そしてプロンプトシェルを使用してそれを実行します(bash myscript.shsh myscript.sh、...)。以下を使用してスクリプトを実行可能にすることもできます。

chmod +x myscript.sh

そして、デフォルトのインタプリタでそれを実行します:

./myscript.sh

1
これはシェルスクリプトではないmakefileを作成しようとしています。
エイドリアンジョージ

次に、これを行うCプログラムを開発し、必要に応じてMakefileを使用してコンパイルする必要があります。Makefile Linuxタスクを実行せず、Cプログラムのコンパイルをガイドします。これは完全に異なるものです。
John WH Smith

1
@JohnWHSmith Cプログラムのコンパイルについて特別なことは何もありません。Makefile 、さまざまなタスクを実行するために使用できます。(そうは言っても、多くのタスクはメイクファイルの使用にあまり適していません。)
Eliah Kagan 2013

0

シェルスクリプトを作成してから、作成したシェルスクリプトを指すシンボリックリンクを作成しませんか?PATHにあるディレクトリにシンボリックリンクを配置します。これにより、どのディレクトリにいてもシンボリックリンクを「実行」できます。

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