在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
目标来删除生成的文件。