2

私は次のものを持っています:.cコード、.hコードに加えて、.oファイルと-lib...ライブラリ。gccでcコードをコンパイルすると、次のようになります。

gcc code.c -o code file.o -library

makefileを作成する方法は?

私は現在autoconfとautomakeを持っていますか?

私は現在持っています:

Makefile

all: 
  gcc code.c -o code file.o -library

clean:

 rm -f code

makeをコンパイルすると、次のようになります。

make: Nothing to be done for `all'.

助けが要る。どうも

4

2 に答える 2

4

申し訳ありませんが、この回答をしなければなりませんが、https://www.google.com/search ?q = makefile + tutorialを試しましたか?

いずれかを選択して、Makefileを作成する方法を学びます。autotoolsは必要ありません。

Makefileチュートリアルを読んで、これを思い付くのに5分かかりました:

CC=gcc
CFLAGS=-Wall
CLIBS=-lX11
OUT=code
OBJS=code.o file.o


$(OUT): code.o file.o
    $(CC) $(CFLAGS) $(CLIBS) -o $(OUT) $(OBJS)
code.o: code.c
    $(CC) $(CFLAGS) -c code.c -o code.o
file.o: file.c
    $(CC) $(CFLAGS) -c file.c -o file.o

.PHONY: clean

clean:
    rm -rf *.o $(OUT)

コンピューターに-libraryが存在しない場合は、自動的にインストールします。

これは使用されるディストリビューションに固有であり、マシンへのルートアクセスが必要です。このようにすることは、それが行われる方法ではありません。代わりに、依存関係を指定するディストリビューションに固有のパッケージを作成する必要があります。

たとえば、Ubuntuの場合(最も使用されているディストリビューションであるため)、. debファイルを作成します:http ://wiki.debian.org/IntroDebianPackaging

ただし、これは最初の質問とは何の関係もありません。

于 2012-09-26T07:59:37.997 に答える
2

このコードを参照してください。これが役立つ場合があります。

たとえば、Cテストファイル「test.c」を作成してから、次のようにmakefileを作成します。

Makefile

 all:

        cc -o test test.c

 clean:

        rm -f test

このファイルを「Makefile」として保存します

  1. このmakefileをmakeコマンドで実行します。次に、現在のディレクトリにテスト実行可能ファイルを作成します

  2. を使用してファイルを実行します./test

  3. make clean実行可能ファイル(テスト)を削除するために使用できます。

Makefileチュートリアルを参照するための参照

于 2014-04-09T18:35:34.677 に答える