[英]simple Makefile for c program
我有這個(工作)Makefile用於單文件C-Application。
all: simpleua
simpleua: simpleua.c
$(CC) -o $@ $< `pkg-config --cflags --libs libpjproject`
現在我想為多文件C-Application擴展這個Makefile。 文件是main.c simpleua.c simpleua.h
我在互聯網上找到了一些樣本,但沒有什么簡單的,並且使用pkg-config
非常感謝弗洛里安
這可能需要幾次迭代(而且你遺漏了很多細節)。 嘗試這個:
all: simpleua
simpleua: simpleua.o main.o
$(CC) -o $@ $^ `pkg-config --cflags --libs libpjproject`
simpleua.o main.o: %.o: %.c simpleua.h
$(CC) -c -o $@ $< `pkg-config --cflags --libs libproject`
編輯:第二次嘗試(感謝Jonathan Leffler)。 在模式規則中使用--libs
可能是不必要的,但請嘗試並查看。
這是一個簡單的Makefile
示例
CC = gcc
XX = g++
CFLAGS = -g
INC := -I test.h
$(LIBS)
TGT = ./sample
OUTPUT = ../output/
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
SOURCES = $(wildcard *.c *.cpp)
OBJS = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES)))
$(TGT) : $(OBJS)
$(CC) $(OBJS) -o $(TGT)
chmod 777 $(TGT)
cp $(TGT) $(OUTPUT)
clean:
rm -rf *.o *~ $(OUTPUT)/*
它適用於C和C ++,只需要從CC更改為XX。 例如,我有兩個目錄,如Makefile
1)sample
2)output
在示例目錄中,我的所有源代碼都存放在輸出文件夾中,我的最終二進制文件被復制(您可以根據需要為目錄指定任何名稱,但請確保在Makefile
也提供相同的名稱)。所以您可以在示例目錄中放置盡可能多的源文件能夠編譯它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.