1

私は今学期の最初のプロジェクトを持っていて、makefile と一緒に提出するように求められました。インターネットで入手できる文献は少し圧倒され、私の怠惰と相まって、簡単な答えを得るためにスタックオーバーフローに来ました。ブレンダン・ロングによるこの回答は、開始するのに適した場所として見つかりました。

彼が与える例は次のとおりです。

all: a3driver.o
g++ -o a3driver a3driver.o

a3driver.o: a3driver.cpp
g++ -c a3driver.cpp

私は理解しています。これは、私が Unix システムで見たことがあり、C++ ファイルをコンパイルするために使用した make ファイルとまったく同じように見えます (使用されるだけで、理解する必要はありませんでした)。

次に、さらに検索すると、この質問への回答は、上に貼り付けたコードとはまったく異なる CMake を使用することを示唆しています。

この段階での私の質問は、どの方向に進むべきかということです。CMake または GNUMake について学ぶ必要がありますか? 今のところ、C++ ファイルのみを扱うつもりです。

4

2 に答える 2

1

1 つまたはいくつかのファイルのみをコンパイルするための非常にシンプルな makefile が必要な場合は、次の手順で完了です。

compile:
        g++ myprogram.cpp -o myprogram

(行はスペースではなく、タブでインデントする必要があることに注意してください)。

柔軟性が必要な場合は、CMake で正しい道を進んでいます。優れたチュートリアルまたは簡単な例から始めて、CMake を探索することをお勧めします。基本は、マニュアルから学ぶよりもコードから理解する方が簡単だからです。

私の個人的な意見では、GNU Automake (口語的に Autohell として知られている) を避けることです。これは、初心者を怖がらせたり、経験豊富なユーザーを騙したりすることがある、異常で冗長な構文のためです。

編集: CMake はコンパイルに使用されません。むしろ、プロジェクトの合成記述から始めて、makefile を生成できます (コンパイルするファイルはどこにありますか?どのようなライブラリが必要ですか?など)。そして、ライブラリをチェックし、コンパイラを識別し、それ以外の場合は自分でコーディングする必要がある他の健全性チェックを実行することでこれを行います。

于 2013-05-06T14:06:44.447 に答える