1

C++ プログラムをビルドするためのメイクファイルがあります。これが私がやりたいことです。1. main.cpp と cipher.cpp を取得し、.o にコンパイルします。 2. 2 つの .o を 2 回リンクします。1 つは cipher と呼ばれる実行可能ファイルに、もう 1 つは decipher です。

実行可能ファイルが 2 つある理由は、main.cpp が argv をチェックして使用している実行可能ファイルをチェックし、それに応じて暗号化または復号化を行うためです。

私が書いたメイクファイルはここにあります: Makefile on Pastebin.com

これは有効な/適切なメイクファイルですか? これがうまくいくかどうか、これを行うためのより良い方法があるかどうかを知りたいです。

4

1 に答える 1

0

はい、それは確かに有効です。2 つの実行可能ファイルが本当に同一であることを意図している場合は、同じコードを 2 回コンパイルする代わりに、一方を他方のコピーまたはハード リンクにすることで、作業を節約できます。

cipher: main.o cipher.o
        $(GCC) $(FLAGS) main.o cipher.o -o $@

decipher: cipher
        ln -f $< $@

自動変数 $<$@を使用して、最初の前提条件の名前とターゲットの名前をそれぞれ参照していることに注意してください。ここでは厳密に必要というわけではありませんが、より複雑なパターン マッチング ルールを指定し始めるときに非常に役立つので、良い習慣だと思います。

于 2013-10-17T01:26:25.823 に答える