linux makefile中的预处理程序指令

时间:2015-06-11 13:37:05

标签: linux makefile c-preprocessor

如何使用#define和!include等命令在linux makefile中使用g ++编译器? 我的理解是#创建了一个注释行,所以#define只是一个注释? 谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

我通常在文件顶部定义一个变量,并将其设置为我想要的#define值:

DEFINES=-DSOMETHING -DSOMETHING_ELSE

对于包含,g++接受来自-I命令行的搜索路径。 对于makefile,你可以做同样的事情,只需创建一个变量并添加路径:

INCLUDES=-I/path -I/path2

makefile然后只是将编译器调用为

g++ $(DEFINES) $(INCLUDES) file.cpp 

答案 1 :(得分:0)

查看此示例

# I am a comment, and I want to say that the variable CC will be
# the compiler to use.
CC=g++
# Hey!, I am comment number 2. I want to say that CFLAGS will be the
# options I'll pass to the compiler.
CFLAGS=-c -Wall

all: hello

hello: main.o factorial.o hello.o
    $(CC) main.o factorial.o hello.o -o hello

main.o: main.cpp
    $(CC) $(CFLAGS) main.cpp

factorial.o: factorial.cpp
    $(CC) $(CFLAGS) factorial.cpp

hello.o: hello.cpp
    $(CC) $(CFLAGS) hello.cpp

clean:
    rm *o hello

有关更多信息,请查看以下内容:

http://mrbook.org/blog/tutorials/make/

http://www.cs.umd.edu/class/fall2002/cmsc214/Tutorial/makefile.html