2016-05-18 2 views
0

私はMakefileを作成するのに助けが必要です。Makefile Dependicies

マイファイル:

all: bin/v bin/g 

bin/v: v.c 
    cc v.c -o bin/v -Wall 

bin/g: g.c 
    cc g.c -o bin/g -D_REENTRANT -lpthread -Wall 

PHONY: all 

GC

VH

メイン

VCは()

私のMakefileはこのようになりますVHを含んGC、内部にあります

すべてのmakeを実行すると、私はエラーのトンを得る:

移転Xは

/usr/lib/gcc/x86_64-linux-gnu/4.8/続い無効なシンボルインデックスY

を持っています。 ./../../x86_64-linux-gnu/crt1.o:関数 `_start ':

(.text + 0x20):未定義の` main' collect2:エラー:ldが1を返しましたexitステータス

私のMakefileの外観はどうですか?

ありがとうございます!

答えて

1

に従うようでなければなりませんLinkerがエラーを出している主な理由があります。 素人の言葉では、 リンカ&ローダーは、実行ファイルを生成する必要があるときにコンパイルの画像になります

+0

ありがとう!これは私のmakefileが持っていた他のものを解決することができた問題の1つを解決しました。すべてが今良いです:D – Tirafesi

4

v.hv.cと言及していない可能性がありますが、これは私が一度使用したようなMakefileのサンプルです。

ディレクトリ名がfolderであり、そのディレクトリにすべてのファイルmain.c , v.h and v.cを配置したとします。そのディレクトリに名前Makefileでファイルを作成します。メイクファイルの内容は、あなたが

bin/v: v.c 
    cc v.c -o bin/v -Wall 

を行っている実行可能ファイルを生成しようとしているため、VCにはないので、あなたは、フラグにだけコンパイルする-cを与える必要が

all: main.out 

main.out: main.c v.o 
     gcc -o main.out main.c v.o 

v.o: v.c v.h 
    gcc -c v.c 

clean: 
    rm -rf main.out *.o