2016-12-04 60 views
1

[我的目錄中的文件] [1]用1個主編譯多個C和頭文件

需要幫助編譯make文件。

所以我有這個鏈接列表分配我正在做和方向是。 stringlist.h應該包含節點和函數原型 stringlist.c應該具有在stringlist.h中定義的函數完成。但是stringlist.c不應該包含main。然後,namelist.c應該包含main,並且只是擁有I/O並且它應該調用stringlist.c中的命令函數。

所以編譯這個,我們應該創建一個make文件。每當我嘗試我得到一個錯誤,因爲main不會在其中一個c文件中退出。在整個術語中,我們編譯了像這樣的代碼「gcc -std = gnu99 -m32 -Wall -g -o file file.c」 但它不起作用。

我該如何創建make文件?花了幾個小時,無法弄清楚。

回答

0

如前所述由喬納森·萊弗勒,我提供的樣本Makefile中有一些不好的想法。下面是一個改進:

# compiler: 
CC = gcc 

# compiler flags: 
CFLAGS = -g -Wall 

# the build target executable: 
TARGET = executable 

# object files to build: 
OBJ = namelist.o stringlist.o 

all: $(TARGET) 

$(TARGET): $(OBJ) 
     $(CC) $(CFLAGS) -o $(TARGET) $(OBJ) 
0

試試這個:

OBJ := namelist.c stringlist.c 
GCC := gcc -g 
CFLAGS := -std=gnu99 -m32 -Wall 

compile: $(OBJ) 
    $(GCC) $(CFLAGS) $(OBJ) -o executable 
+0

嘗試過了,並得到了一個錯誤「使:***沒有規則,使目標‘%(OBJ)’,由‘編譯’停止需要的。」 – Programmer

+0

@編程嘗試用'all'替換'compile'。 –

+0

嗯怪異的有一個類似的錯誤「make:***沒有規則來製作目標'%(OBJ)','all'需要。停止。」 – Programmer