在Makefile中,編譯選項通常是通過設置變量來實現的
CC = gcc
CXX = g++
CFLAGS = -Wall -g
CXXFLAGS = -Wall -g
LDFLAGS = -L/path/to/libraries
LDLIBS = -lm -lpthread
CPPFLAGS = -DDEBUG -I/path/to/headers
以下是一個簡單的Makefile示例,展示了如何設置這些編譯選項:
CC = gcc
CXX = g++
CFLAGS = -Wall -g
CXXFLAGS = -Wall -g
LDFLAGS = -L/path/to/libraries
LDLIBS = -lm -lpthread
CPPFLAGS = -DDEBUG -I/path/to/headers
TARGET = my_program
OBJECTS = main.o foo.o bar.o
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $(TARGET) $(LDLIBS)
%.o: %.c
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
%.o: %.cpp
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
clean:
rm -f $(TARGET) $(OBJECTS)
這個Makefile定義了一個名為my_program
的目標程序,其中包含三個源文件(main.c、foo.c和bar.cpp)。它使用了上述提到的編譯選項,并定義了一個clean
目標來刪除生成的文件。