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